文档章节

MemCache 入门极简教程

kangvcar
 kangvcar
发布于 2017/11/04 19:12
字数 1387
阅读 23
收藏 0

MemCache 概述

MemCache虽然被称为”分布式缓存”,但是MemCache本身完全不具备分布式的功能

Memcache 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。 MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。MemCache设计理念就是小而强大,它简单的设计促进了快速部署、易于开发并解决面对大规模的数据缓存的许多难题,而所开放的API使得MemCache能用于Java、C/C++/C#、Perl、Python、PHP、Ruby等大部分流行的程序语言。

MemCache作用流程图

MemCache 安装

Windows 下安装 MemCache

  1. 点击下载 安装包
  2. 解压下载后的文件

解压后的文件内容

  1. 使用管理员身份运行cmd 并切换到上一步解压后的目录下, 运行命令 memcached -d install 来把memcache安装为系统服务, 运行命令 memcached -d start 来启动服务

把memcache安装为系统服务

启动服务

  1. 如果成功,则可以在系统服务上看到 memcache 服务, memcache默认在localhost的11211端口上启动了一个实例

在系统服务上查看 memcache 服务

  1. 在cmd 下输入命令 telnet localhost 11211 来连接 memcache 实例

输入命令 telnet localhost 11211 来连接 memcache 实例

Ubuntu 下安装 MemCache

  1. 使用命令 sudo apt-get install -y memcached 来安装memcache
  2. 安装完成后默认会在 localhost:11211 上启动一个默认实例
  3. 使用命令 ps aux | grep memcached 来查看是否正常运行

使用命令 ps aux | grep memcached 来查看是否正常运行

  1. 使用命令 telnet localhost 11211 来连接memcache实例

使用命令  来连接memcache实例

MemCache 常用命令

add

添加数据,将 value(数据值) 存储在指定的 key(键) 中

命令格式
add key flag expiretime bytes
value
  • key : 给这个值设置一个名字
  • flag : 标志,是一个整数
  • expiretime : 有效期,以秒为单位,0表示没有延迟
  • bytes : 这是一个需要存储在memcached的数据的长度
  • value : 是一个需要存储的数据。数据需要将通过在新的一行后输入
范例
# 添加数据
add name 0 1000 8
kangvcar
STORED
# 如果bytes设置的长度和输入的value长度不符则出现一下错误
add name 0 1000 8
kangvcarrr
CLIENT_ERROR bad data chunk

set

为一个新的或现有的键(key)设置一个值

命令格式
set key flag expiretime bytes
value

参数含义与 add 命令相同

范例
为已存在的key(name)设置一个新的值tom
set name 0 1000 3
tom
STORED

replace

替换已存在的 key(键) 的 value(数据值)

命令格式
replace key flag expiretime bytes
value

参数含义与 add 命令相同

范例
replace name 0 1000 8
memcache
STORED

append

向已存在 key(键) 的 value(数据值) 后面追加数据

命令格式
append key flag expiretime bytes
value

参数含义与 add 命令相同

范例
# 添加数据123到现有键name的后面
append name 0 1000 3
123
STORED
# 查看键name的值
get name
VALUE name 0 11
memcache123
END

prepend

向已存在 key(键) 的 value(数据值) 前面追加数据

命令格式
prepend key flag expiretime bytes
value

参数含义与 add 命令相同

范例
prepend name 0 1000 3
456
STORED
get name
VALUE name 0 14
456memcache123
END

gets / cas

gets 获取带有 CAS 令牌的 value(数据值) cas 执行一个"检查并设置"的操作

命令格式
gets key
cas key flags exptime bytes unique_cas_token [noreply]
value
  • unique_cas_token : 通过 gets 命令获取的一个唯一的64位值
范例
# 缺少一个参数 unique_cas_token 
cas name 0 1000 3
ERROR
# unique_cas_token 不正确
cas name 0 1000 3 2
sam
NOT_FOUND
# 通过 gets 命令获取唯一令牌 ==> 12
gets name
VALUE name 0 8 12
kangvcar
END
# 使用 cas 命令更新数据
cas name 0 1000 3 12
sam
STORED
# 使用 get 命令查看数据是否更新
get name
VALUE name 0 3
sam
END

get

获取存储在 key(键) 中的 value(数据值)

命令格式

get key

范例
# 获取存储在键name的值
get name
VALUE name 0 14
456memcache123
END

delete

删除已存在的 key(键)

命令格式

delete key

范例
delete age
DELETED

incr / decr

incr 与 decr 命令用于对已存在的 key(键) 的数字值进行自增或自减操作

命令格式

incr key increment_value decr key increment_value

范例
# 添加数据
add age 0 1000 2
15
STORED
# 对已存在的键(age)数字值进行自增
incr age 5
20
# 获取键age的值
get age
VALUE age 0 2
20
END
# 添加数据
add age 0 1000 2
15
STORED
# 对已存在的键(age)数字值进行自减
incr age 5
10
# 获取键age的值
get age
VALUE age 0 2
10
END

flush_all

清理缓存中的所有数据

命令格式

flush_all [time]

  • time : (可选) 在指定时间后执行清理缓存操作
范例
flush_all
OK

stats / stats slabs / stats sizes / stats items

stats 显示统计信息例如 PID(进程号)、版本号、连接数等 stats slabs 显示各个slab的信息,包括chunk的大小、数目、使用情况等 stats sizes 显示所有item的大小和个数 stats items 显示各个 slab 中 item 的数目和存储时长

命令格式

stats stats slabs stats sizes stats items

范例
stats
STAT pid 19700
STAT uptime 3054540758
STAT time 269361355
STAT version 1.4.4-14-g9c660c0
STAT pointer_size 64
...
stats slabs
STAT 1:chunk_size 96
STAT 1:chunks_per_page 10922
STAT 1:total_pages 1
STAT 1:total_chunks 10922
...
stats sizes
STAT 96 2
END
stats items
STAT items:1:number 2
STAT items:1:age 3054540037
STAT items:1:evicted 0
STAT items:1:evicted_nonzero 0
STAT items:1:evicted_time 0
STAT items:1:outofmemory 0
STAT items:1:tailrepairs 0
END

© 著作权归作者所有

共有 人打赏支持
kangvcar
粉丝 61
博文 67
码字总数 74741
作品 0
广州
运维
私信 提问
MemCache 入门极简教程

MemCache 概述 MemCache虽然被称为”分布式缓存”,但是MemCache本身完全不具备分布式的功能 Memcache 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内...

Kangvcar
2017/11/04
0
0
Python 3 极简教程

Python 3 极简教程 吴小龙同學2017-10-119 阅读 Python 人生苦短,我用 Python! 今天上班的第一天,大家的状态如何昵,是否有假期综合症昵。从《 MySQL、Python 搞起 》,我已经开始自学 Py...

吴小龙同學
2017/10/11
0
0
Kotlin Weekly 中文周报 —— 16

Kotlin 开发中文周报 文章 Android 开发者的一些实用技巧。(github.com) Ravindra 在 DevfestAhm 2017 的演讲。 像 Kotlin 的专家一样测试 。(blog.karumi.com) 将 Kotlin 库发布到 jCente...

DoubleThunder
2017/11/13
0
0
最新上架!!!《 Kotlin极简教程》 陈光剑 (机械工业出版社)

《Kotlin极简教程》正式上架: 点击这里 > 去京东商城购买阅读 点击这里 > 去天猫商城购买阅读 非常感谢您亲爱的读者,大家请多支持!!!有任何问题,欢迎随时与我交流~ 欢迎阅读,感谢大家...

程序员诗人
2017/09/10
0
0
Python 3 极简教程 之 Mac 安装 Python

Python 3 极简教程 之 Mac 安装 Python 吴小龙同學2017-10-1616 阅读 Python Python 3.0 在设计的时候没有考虑向下兼容,我们的教程将以最新的 Python 3.6 版本为基础。 Mac 安装 Python Mac...

吴小龙同學
2017/10/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

使用keepalived实现nginx的高可用

概述 是这样子的,我想让家中所有的应用服务都从nginx中出去,让nginx处于访问的最边缘地带,为了让nginx可靠性加强,所以nginx就得实现高可用,分别是下面两台机器要做nginx的集群 10.10.10...

bboysoulcn
今天
1
0
Mysql索引机制B+Tree

1、问题引入 有一个用户表,为了查询的效率,需要基于id去构建索引。构建索引我们需要考虑两个方面的问题,1个是查询的效率,1个是索引数据的存储问题。该表的记录需要支持百万、千万、甚至上...

万山红遍
今天
40
0
RDD

1.概念: RDD是spark整个体系中最基础核心的概念,RDD(Resilient Distributed DataSet)即弹性分布式数据集 弹性: RDD支持横向多分区,纵向操作内存不足写入磁盘,hdfs等,实现数据在内存和...

仟昭
今天
1
0
springboot整合mycat

动态数据源项目整合 Maven依赖信息 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.4.RELEASE</version> <relat......

须臾之余
今天
2
0
深入解析Vue 和微信小程序的区别、比较

写了vue项目和小程序,发现二者有许多相同之处,在此想总结一下二者的共同点和区别。 一、生命周期 先贴两张图: vue生命周期 小程序生命周期 相比之下,小程序的钩子函数要简单得多。 vue的...

前端攻城小牛
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部