缓存数据库Memcached

什么是缓存

缓存是指可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速率很快。
Linux中,当你读写文件的时候,Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。

buffer和cache

buffer

缓冲区,用于存储速度不同步的设备或优先级不同的设备之间传输数据;通过buffer可以减少进程间通信需要等待的时间,当存储速度快的设备与存储速度慢的设备进行通信时,存储慢的数据先把数据存放到buffer,达到一定程度存储快的设备再读取buffer的数据,在此期间存储快的设备CPU可以干其他的事情。
一般是用在写入磁盘的,例如:某个进程要求多个字段被读入,当所有要求的字段被读入之前已经读入的字段会先放到buffer中。

Cache

缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而 Cache保存着CPU刚用过的数据或循环使用的部分数据,这时从Cache中读取数据会更快,减少了CPU等待的时间,提高了系统的性能。
Cache从磁盘读取数据,并不是缓存文件的,而是缓存块的(块是I/O读写最小的单元);Cache一般会用在I/O请求上,如果多个进程要访问某个文件,可以把此文件读入Cache中,这样下一个进程获取CPU控制权并访问此文件直接从Cache读取,提高系统性能。

缓冲(buffer)和缓存(cache)的区别:

缓存(cache)是在读取硬盘中的数据时,把最常用的数据保存在内存的缓存区中,再次读取该数据时,就不去硬盘中读取了,而在缓存中读取。
缓冲(buffer)是在向硬盘写入数据时,先把数据放入缓冲区,然后再一起向硬盘写入,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。
简单来说,缓存(cache)是用来加速数据从硬盘中"读取"的,而缓冲(buffer)是用来加速数据"写入"硬盘的。

总结区别:
1、buffer指的是缓冲区,而cache指的是缓存区;
2、Buffer用来加快数据“写入”硬盘的速度,而cache用来加快数据从硬盘中“读取”的速度;
3、buffer可减少进程间通信需要等待的时间,Cache可减少CPU等待的时间。

linux系统如何查看内存的缓存

查看动态更新的虚拟文件,可以查看到许多内存相关的信息

cat /proc/meminfo

[root@localhost ~]# cat /proc/meminfo
MemTotal:         995896 kB
MemFree:           61720 kB
MemAvailable:      21480 kB
Buffers:              36 kB
Cached:            39020 kB
SwapCached:        81060 kB
Active:           410044 kB
Inactive:         393028 kB
Active(anon):     385908 kB
Inactive(anon):   379744 kB
Active(file):      24136 kB
Inactive(file):    13284 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       2097148 kB
SwapFree:        1736700 kB
Dirty:                32 kB
Writeback:             0 kB
AnonPages:        691756 kB
Mapped:            17408 kB
Shmem:              1636 kB
Slab:              66440 kB
SReclaimable:      24876 kB
SUnreclaim:        41564 kB
KernelStack:        6368 kB
PageTables:         7636 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2595096 kB
Committed_AS:    3574696 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      177444 kB
VmallocChunk:   34359310332 kB
HardwareCorrupted:     0 kB
AnonHugePages:     63488 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       77696 kB
DirectMap2M:      970752 kB
DirectMap1G:           0 kB

free

快速查看内存, -m 以M的形式显示

free -h

在这里插入图片描述

top

top命令提供了实时的运行中的程序的资源使用统计。可以根据内存的使用和大小来进行排序。
缓存数据库Memcached_第1张图片

memcached

memcached是一种高性能、分布式内存对象缓存系统,本质上是通用的,但最初旨在通过减轻数据库负载来加速动态web应用程序。
Memcache 和 Memcached 两种不同的说法
其实 Memcache 是这个项目的名称,而 Memcached 是它服务器端的主程序文件名。一个是项目名称,另一个是主程序文件名。
memcached是一种缓存技术,将数据放入内存,从而通过内存访问提速,因为内存是最快的,memcached的主要目的是提速。
在memcached中维护了一张大的hashtable表,该表在内存中,表的结构是key和value
memcached的key一般是字符串,不能重复
memcached的value可以放入(字符串,数值,数组,对象,布尔,二进制数据,图片和视频)

Memcached数据库特点

memcached作为高速运行的分布式缓存服务器,具有以下的特点。
•协议简单
使用基于文本行的协议,能直接通过telnet在Memcached服务器上存取数据,实现比较简单
•基于libevent的事件处理
libevent是基于C开发的程序库,Memcached利用这个库进行异步事件处理
•内置内存存储方式
Memcached有一套自己的管理内存方式,而且非常高效,所有数据都保存在Memcached内置的内存
中,当存入的数据占满空间时,会使用LRU算法来清除不使用的缓存数据,从而来重用过期数据的内存空间,但重启服务器数据将丢失
•memcached不互相通信的分布式
各个Memcached服务器之间互不通信,都是独立存取数据,通过客户端的设计让其具有分存式特点,支持大量缓存和大规模应用

Memcached 安装

1、yum安装

Linux系统安装memcached,首先要先安装依赖库。
yum install gcc gcc-c++ libevent-devel
然后使用如下命令安装(仅限Redhat/Fedora/Centos)
yum install memcached -y
开启服务:
systemctl start memcached

2、源码安装

从其官方网站(http://memcached.org)下载memcached最新版本。
缓存数据库Memcached_第2张图片
Debian/Ubuntu: apt-get install libevent-dev Redhat/Centos: yum install libevent-devel
提示:源码安装前centos的需要使用yum install libevent-devel依赖包
wget http://memcached.org/latest
tar -zxvf memcached-1.x.x.tar.gz
cd memcached-1.x.x
./configure && make && make test && sudo make install

Memcached 运行

缓存数据库Memcached_第3张图片
缓存数据库Memcached_第4张图片
缓存数据库Memcached_第5张图片
监控端口
请添加图片描述

Memcached 连接

缓存数据库Memcached_第6张图片

你可能感兴趣的:(Linux,缓存,数据库,memcached,linux,运维)