-
什么是memcached
-
1.memcached: 之前是danga的一个项目,最早是为LiveJournal服务的,当初设计师为了加速LiveJournal访问速度而开发的,后来被很多大型项目采用。官网是www.dange.com或者是memcached.org
-
2.Memcached是一个高性能的分布式的内存对象缓存系统,全世界有不少公司采用这个缓存项目来构建大负载的网站,来分担数据库的压力。Memcached是通过内存里维护一个统一的巨大的hash表,memcached能存储各种各样的数据,包括图像、视频、文件、以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
-
3.哪些情况下适合使用Memcached: 存储验证码(图形验证码、短信验证码)、登录session等所有不是至关重要的数据
-
-
memcached的安装
-
1.windows:
-
安装: memcached.exe -d installed.
-
启动 memcached.exe -d start
-
-
2.Linux(ubuntu):
-
安装: sudo apt install memcached
-
启动:
-
cd /usr/local/memcached/bin ./memcached -d start
-
-
-
3.可能出现的问题:
-
提示你没有权限,在打开cmd的时候,右键使用管理员身份运行
-
提示缺失pthreadGC2.dll文件: 将pthreadGC2.dll文件拷贝到 windows/System32
-
不要放在含有中文的路径下面
-
-
4.启动memcached
-
-d : 这个参数是让memcached在后台运行
-
-m:指定占用多少内存,以M为单位,默认为64M
-
-p:指定占用的端口,默认端口是11211
-
-l:别的机器可以通过哪个ip地址链接到我这台服务器。如果是通过 service memcached start的方式,那么只能通过本机连接。如果想要让别的机器连接,就必须设置'-l 0.0.0.0'
-
如果想要使用以上参数来指定一些配置信息,那么不能使用 service memcached start, 而应该使用 /usr/bin/memcached 参数的方式来运行。 比如
-
/usr/bin/memcached -u memcache -m 1024 -p 11222 start
-
-
-
-
telnet操作memcached
-
telnet 登录memcached:
-
登录的语法是 : telnet 127.0.0.1[ip地址] 11211[端口号]
-
-
memcached 存储数据是以键值对的方式存储
-
1.添加数据:
-
1.set: 在memcached中添加一个'key->value' 如果这个'key' 之前是已经存在过,那么就会替换,否则就是添加
-
语法:
-
set key 0[是否压缩] timeout [过期时间] value_length[字符的长度]
-
value
-
-
示例:
-
set username 0 60 7
-
zhiliao
-
-
-
2.add: 给'memcached'添加键值对。如果memcached中之前已经存在了这个'key',那么就添加失败,否则就添加成功
-
语法:
-
add username[key] 0[是否压缩] timeout [过期时间] value_length[字符的长度]
-
value
-
-
示例
-
add username 0 60 7
-
xiaotuo
-
如果username这个key之前是已经存在了那么就会提示NOT STORED
-
-
-
-
2.获取数据
-
get: 从memcached中获取一个数据,根据key来获取
-
get username[key的名称]
-
-
-
3.删除数据
-
delete: 删除'memcached'中的一个键值对。
-
语法:
-
delete key
-
-
示例:
-
delete username
-
-
flush_all: 删除memcached 中的所有数据. 这个命令比较简单粗暴,谨慎使用
-
-
4.incr: 给‘memcached’中那些数字类型的值进行相加操作。相加的项,都必须是数字类型,否则就会报错 示例代码如下
-
set age 0 120 2
-
18
-
STORED
-
incr age 2
-
20
-
get age
-
20
-
-
5.decr:给‘memcached’中那些数字类型的值进行相减操作。相减的项,都必须是数字类型,否则也会报错 示例代码如下
-
set age 0 120 2
-
18
-
STORED
-
decr age 2
-
16
-
get age
-
16
-
-
6.查看memcached的当前状态:
-
语法: stats 一些有意义的参数如下:
-
get_hists: get命令命中了多少次
-
get_misses: get命令get空了几次
-
curr_items: 当前memcached中的键值对的个数
-
total_connections: 从memcached开启到现在总共的连接数
-
curr_connections: 当前memcached的连接数
-
memcached默认最大的连接数是1024
-
-
-
-
通过Python操作memcached
-
1.安装:python-memcached: pip install python-memcached 2.建立连接 import memcache 在连接之前,一定要切记先启动memcached mc = memcache.Client(['127.0.0.1:11211' , '192.168.174.130:11211'],debug=True) 3.设置数据: mc.set('username','hello world',time=60*5) 一次只能设置一个值 mc.set_multi({'email':'xxx@qq.com','telphone':'1111'},time =60*5) 一个可以设置多个值 4.获取数据 mc.get('telphone') 5.删除数据: mc.delete('email') 6.自增长: mc.incr("read_count",delta = 10) 默认是增加1 指定delta = 100,就在原基础上增加10 7.自减少 mc.decr("read_count")
-
-
memcached的安全性
-
memcached的操作不需要任何用户名和密码,只需要知道'memcached 的服务器的ip地址和端口号即可'。因此memcached使用的时候尤其要注意他的安全性。这里提供两种安全的解决方案。分别来进行详解
-
1.使用‘-l’参数设置为只有本地可以连接: 这种方式,就只能通过本机才能连接,别的机器都不能访问,可以达到最好的安全性
-
2.使用防火墙,关闭'11211'端口。外面也不能访问
-
ufw enable #开启防火墙
-
ufw disable #关闭防火墙
-
ufw default deny #防火墙以禁止的方式打开,默认是关闭那些没有开启的端口
-
ufw deny 端口号 #关闭某个端口
-
ufw allow端口号 #开启某个端口
-
-
-
相关文章: