Memcached是一个高性能的分布式的内存对象缓存系统,全世界有不少公司采用这个缓存项目来构建大负载的网站,来分担数据库的压力。适合使用Memcached:存储验证码(图形验证码、短信验证码)、登录session等所有不是至关重要的数据(保存于内存中,关机后数据就会消失)

本文要点:
1.win,Linux安装memcached
2.docker创建memcached
3.测试并进入容器
4.telnet操作memcached

1.安装memcached

   Memcached是通过在内存里维护一个统一的巨大的hash表,memcached能存储各种各样的数据,包括图像、视频(但是极不推荐来保存二进制文件)、文件、以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
参考docker创建memecached容器
windows下ThinkPHP3.2.3使用memcache缓存

2.创建memcached镜像

docker run -di –name=”memcached” -m 256m -p 11211:11211 memcached:[tag]

1
2
3
4
5
6
-d是启动一个守护进程;
-m是分配给Memcache使用的内存数量,单位是MB;
-u是运行Memcache的用户;
-l是监听的服务器IP地址,可以有多个地址;
-p是设置Memcache监听的端口,,最好是1024以上的端口;
-c是最大运行的并发连接数,默认是1024;

3.测试并进入docker容器

测试是否启动成功

netstat -luntp|grep 11211或者docker ps

安装telnet

yum install -y telnet 或 sudo apt-get install telnet

通过telnet方式连接memcached

telnet 127.0.0.1 11211 或者使用 telnet ubuntu_ip docker_memcached_port

设置值,age是key,0是标志位,900是生命周期,8代表所占字节数,回车之后的10是value

set age 0 900 8
10

获取值

get age

退出

exit
quit

4.telnet操作memcached:

1.添加数据

  • set语法:
    1
    2
    3
    4
    5
    6
    7
    8
     set key flas(是否压缩,默认为0,不压缩) timeout value_length
    value
    示例:
    set username 0 60 7
    zhiliao
    ```

    + add语法:
    add key flas(0) timeout value_length
    value
    示例:
    add username 0 60 7
    xiaotuo
    set和add的区别:add是只负责添加数据,不会去修改数据。如果添加的数据的key已经存在了,则添加失败,如果添加的key不存在,则添加成功。而set不同,如果memcached中不存在相同的key,则进行添加,如果存在,则替换。
    

2.获取数据:get key_name

3.删除数据:delete key_name

4.删除memcached所有数据:flush_all

5. memcached安全性

memcached的操作不需要任何用户名和密码,只需要知道memcached服务器的ip地址和端口号即可。因此memcached使用的时候尤其要注意他的安全性。这里提供两种安全的解决方案。分别来进行讲解:

    1.使用-l参数设置为只有本地可以连接:这种方式,就只能通过本机才能连接,别的机器都不能访问,可以达到最好的安全性。
    2.使用防火墙,关闭11211端口,外面也不能访问

未完待续…


 评论

联系我 | Contact with me

Copyright © 2019-2020 谁知你知我,我知你知深。此恨经年深,比情度日久

博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议