redis 是目前比较流行的key-value数据存储系统,数据会存在内存中,与memcached不同的是会周期性的将数据落地到磁盘中。
redis的安装过程:
从redis官网下载3.2.3:http://download.redis.io/releases/redis-3.2.3.tar.gz
解压出来的目录如下:
由于 redis的makefile 已经写好,因此只要编译即可,在当前目录下make
你可能会遇到:
需要在安装目录父目录里执行: chmod 777 * -R
另外,你可能会因为没有安装jemalloc,导致以下问题:
因为redis在内存分配上默认用的是jmelloc, 因为jmelloc对碎片管理上比glibc的要好,看下图必性能对比:
解决此问题有两个方法:
1.不使用 jemalloc, 使用glibc, 编译命令: make MALLOC=libc
2.安装jmelloc,安装方法下篇文章祥述。
安装过程中,界面上会显示一些警告:
这是作者需要管的事情,不去理它。
此时进入src目录,认真看会发现多了几个文件:
这就是我们编译生成的文件,当然也可以在编译生成的文件拷出来:
make install PREFIX=/usr/local/redis/
上面有/usr/local/redis是我想要的执行目录,可以改成你希望生成的目录。
现在进/usr/local/redis,会发现多了个bin目录:
进入bin目录发现有了运行程序:
此时已经可以运行redis的服务端程序了, 输入 ./redis-server &:
按一下回车即可监听到服务程序的运行状态:
不过想要可配,还需要redis.conf,安装目录里有。由于习惯,我会将redis.conf拷到/usr/local/redis/conf下:
修改此redis.conf:
将此处的no 改为yes,即可实现后台运行:
关掉刚才已经运行的redis-server:
killall -9 redis-server
现在可按配置运行我们的程序了:
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
我们试试用终端redis-cli访问:
成功连上。
我们知道缓存服务的安全性很高,所以授权就很重要,下面我们来看看redis如何设置密码。
在redis.conf 里找到requirepass这一行:
修改为(注意requirepass 前面的#号去掉)
保存后重启redis-server:
killall -9 redis-server
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
再来重连试试:
输入auth xiaofei再试试:
密钥授权已经实现了,不过个人觉得redis的安全策略不算很高明,可以用iptables对端口管理来实现访问控制。