MemCache虽然被称为”分布式缓存”,但是MemCache本身完全不具备分布式的功能
Memcache 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。 MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。MemCache设计理念就是小而强大,它简单的设计促进了快速部署、易于开发并解决面对大规模的数据缓存的许多难题,而所开放的API使得MemCache能用于Java、C/C++/C#、Perl、Python、PHP、Ruby等大部分流行的程序语言。
memcached -d install
来把memcache安装为系统服务, 运行命令 memcached -d start
来启动服务
telnet localhost 11211
来连接 memcache 实例sudo apt-get install -y memcached
来安装memcacheps aux | grep memcached
来查看是否正常运行telnet localhost 11211
来连接memcache实例添加数据,将 value(数据值) 存储在指定的 key(键) 中
12 | add key flag expiretime bytesvalue |
---|
12345678 | # 添加数据add name 0 1000 8kangvcarSTORED# 如果bytes设置的长度和输入的value长度不符则出现一下错误add name 0 1000 8kangvcarrrCLIENT_ERROR bad data chunk |
---|
为一个新的或现有的键(key)设置一个值
12 | set key flag expiretime bytesvalue |
---|
参数含义与 add 命令相同
1234 | 为已存在的key(name)设置一个新的值tomset name 0 1000 3tomSTORED |
---|
替换已存在的 key(键) 的 value(数据值)
12 | replace key flag expiretime bytesvalue |
---|
参数含义与 add 命令相同
123 | replace name 0 1000 8memcacheSTORED |
---|
向已存在 key(键) 的 value(数据值) 后面追加数据
12 | append key flag expiretime bytesvalue |
---|
参数含义与 add 命令相同
123456789 | # 添加数据123到现有键name的后面append name 0 1000 3123STORED# 查看键name的值get nameVALUE name 0 11memcache123END |
---|
向已存在 key(键) 的 value(数据值) 前面追加数据
12 | prepend key flag expiretime bytesvalue |
---|
参数含义与 add 命令相同
1234567 | prepend name 0 1000 3456STOREDget nameVALUE name 0 14456memcache123END |
---|
gets
获取带有 CAS 令牌的 value(数据值)
cas
执行一个”检查并设置”的操作
1 | gets key |
---|
12 | cas key flags exptime bytes unique_cas_token [noreply]value |
---|
123456789101112131415161718192021 | # 缺少一个参数 unique_cas_token cas name 0 1000 3ERROR# unique_cas_token 不正确cas name 0 1000 3 2samNOT_FOUND# 通过 gets 命令获取唯一令牌 ==> 12gets nameVALUE name 0 8 12kangvcarEND# 使用 cas 命令更新数据cas name 0 1000 3 12samSTORED# 使用 get 命令查看数据是否更新get nameVALUE name 0 3samEND |
---|
获取存储在 key(键) 中的 value(数据值)
get key
12345 | # 获取存储在键name的值get nameVALUE name 0 1456memcache123END |
---|
删除已存在的 key(键)
delete key
12 | delete ageDELETED |
---|
incr 与 decr 命令用于对已存在的 key(键) 的数字值进行自增或自减操作
incr key increment_value
decr key increment_value
123456789101112 | # 添加数据add age 0 1000 215STORED# 对已存在的键(age)数字值进行自增incr age 520# 获取键age的值get ageVALUE age 0 220END |
---|
123456789101112 | # 添加数据add age 0 1000 215STORED# 对已存在的键(age)数字值进行自减incr age 510# 获取键age的值get ageVALUE age 0 210END |
---|
清理缓存中的所有数据
flush_all [time]
stats
显示统计信息例如 PID(进程号)、版本号、连接数等
stats slabs
显示各个slab的信息,包括chunk的大小、数目、使用情况等
stats sizes
显示所有item的大小和个数
stats items
显示各个 slab 中 item 的数目和存储时长
stats
stats slabs
stats sizes
stats items
1234567 | statsSTAT pid 19700STAT uptime 3054540758STAT time 269361355STAT version 1.4.4-14-g9c660c0STAT pointer_size 64... |
---|
123456 | stats slabsSTAT 1:chunk_size 96STAT 1:chunks_per_page 10922STAT 1:total_pages 1STAT 1:total_chunks 10922... |
---|
123 | stats sizesSTAT 96 2END |
---|
123456789 | stats itemsSTAT items:1:number 2STAT items:1:age 3054540037STAT items:1:evicted 0STAT items:1:evicted_nonzero 0STAT items:1:evicted_time 0STAT items:1:outofmemory 0STAT items:1:tailrepairs 0END |
---|