下载
- 从Redis官网下载redis 最新稳定版本
- 解压到 /usr/local/ 目录下
安装
1
| make && make test && make install
|
make时报如下错误:
1
2
3
4
5
| zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/data0/src/redis-2.6.2/src'
make: *** [all] Error 2
|
原因是jemalloc重载了Linux下的ANSI C的malloc和free函数。
解决办法:
redis 生产环境启动方案
- redis utils 目录下,有个redis_init_script脚本
- 将redis_init_script脚本拷贝到linux的/etc/init.d 目录中,将redis_init_script重命名为redis_6379, 6379是我们希望redis 的实例端口号
- 创建两个目录 /etc/redis (存放redis 配置的目录), /var/redis/6379 (存放redis的持久文件)
- 修改redis.conf配置文件(默认在根目录下),拷贝到/etc/redis目录下,修改名称为6379.conf
- 修改redis.conf中的部分配置为生产环境
参数 | 值 | 说明 |
---|
daemonize | yes | 让redis以daemon进程运行 |
pidfile | /var/run/redis_6379.pid | 设置redis的pid文件位置 |
port | 6379 | 设置redis的监听端口号 |
dir | /var/redis/6379 | 设置持久化文件的存储位置 |
- 启动redis:
1
2
3
| cd /etc/init.d
chmod 777 redis_6379
./redis_6379 start
|
- 确认redis 进程是否启动:
ps -ef | grep redis
- 让redis跟随系统启动自动启动,在redis_6379 脚本中,最上面加入两行注释
1
2
3
| # chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
chkconfig redis_6379 on
|
主从架构(主节点和从节点最好保证一致的版本)
- 在 slave node 上配置:
1
| slaveof 192.168.1.1 6379
|
- 强制读写分离
基于主从复制架构,实现读写分离
redis slave node 只读,默认开启,slave-read-only
开启了只读的redis slave node,会拒绝所有的写操作,这样可以强制搭建成读写分离架构
集成安全认证
master 上启用安全认证策略,requirepass
master 连接口令 masterauth
读写分离架构的测试
先启动主节点,再启动从节点,在搭建生产环境的时候,不要忘记修改一个配置:
每个redis.conf 中的bind 127.0.0.1
-> bind自己的ip,并且防火墙打开6379端口
redis-cli的使用
命令 | 说明 |
---|
redis-cli shutdown | 连接本机的6379端口停止redis进程 |
redis-cli -h 127.0.0.1 -p 6379 | 指定要连接的ip和端口号 |
redis-cli ping | ping redis的端口,看是否正常 |
redis-cli | 进入交互式命令行 |
set k1 v1 | 设置一个key:value |
get k1 | 获取key的值 |