Redis常用配置

1.redis安装

wget http://download.redis.io/releases/redis-5.0.3.tar.gz

tar -xvf  redis-5.0.3.tar.gz

cd redis-5.0.3/src

make    //编译安装redis

vim /etc/profile    末尾追加export PATH=$PATH:[这里写redis-5.0.3的路径]/src

source /etc/profile  或者重启

然后就可以直接使用 redis-server,redis-cli等命令了

 

2. 常用redis配置

redis-server  [配置文件名]           //配置文件启动

redis-server  --keyword1 argument1   --keyword2 argument2 ....       //临时参数启动

 

常用配置项:

#端口号 (默认6379)

port  80                          

#是否以守护进程启动 (默认no)

daemonize  yes        

#认证密码 (默认不需要密码)

requirepass  1111      

#是否以保护模式启动  (默认yes)

protected-mode  no                

#bind绑定的是本机的ip地址,如果redis服务器上有ip1和ip2两个ip地址,bind ip1 表示只有经过    ip1才可以访问redis   参考https://blog.csdn.net/cw_hello1/article/details/8344401

bind  127.0.0.1                           

 

#主从模式中主服务器地址 

slaveof  127.0.0.1  6379       

#配置主从的时候,如果主服务器配置了密码,从服务器中需要配置主服务器的密码,否则会同步      失败, 报错:  MASTER aborted replication with an error: NOAUTH Authentication required.

masterauth  1111     

#从服务器是否只读,  为no时候,从服务器可以增删改,但是修改不会同步到主服务器 (默认yes)

replica-read-only  no         

     

#rdb的持久化方式的配置,[900 | 300 | 60] 秒内达到  [1 | 10 | 10000]  次修改就持久化到rdb文件

临时参数启动时,配置方法为  redis-server  --port  9001  --save 900 1  --save  300 10

save 900 1                                     
save 300 10         
save 60 10000   

#指定rdb文件的路径和文件名, 不同端口的redis实例可以使用同一个rdb文件

dir  /home/root/redis

dbfilename  dump.rdb

 

#开启aof持久化方式 (默认 no)

appendonly  yes

#指定aof日志文件的文件名, 路径同样用dir指定

appendfilename  appendonly.aof

#aof持久化的策略,每秒 | 修改后立刻 | 不持久化 三种策略 (默认everysec)

appendfsync  [everysec | always | no] 

 

3. 开放远程连接

[server端] 守护进程的方式启动一个redis实例,端口9001,非保护模式

redis-server --port 9001 --daemonize yes --protected-mode no

 

vim /etc/sysconfig/iptables   添加  -A INPUT -p tcp -m tcp --dport 9001 -j ACCEPT 

如果不存在这个文件,可能是没安装iptables,   yum install iptables-services

service iptables restart 

防火墙开放9001号端口

 

如果用iptables还是无法开放端口

firewall-cmd --add-port=9001/tcp --permanent

systemctl restart firewalld

firewall-cmd --query-port=9001/tcp      查看端口是否开放

或者直接关闭防火墙  systemctl stop firewalld

 

redis-cli -h [host] -p [port]

如果有进程监听端口,但是端口没有开放,报错
Could not connect to Redis at 10.72.58.241:7123: No route to host
Could not connect to Redis at 10.72.58.241:7123: No route to host

如果端口开放了, 但是没有进程监听端口,报错:

Could not connect to Redis at 10.72.58.241:9001: Connection retfused
Could not connect to Redis at 10.72.58.241:9001: Connection refused

 

4. redis持久化方式

redis是内存数据库,最终要选择一定的策略将数据保存在磁盘上才能实现数据持久化. 当然如果只是拿redis做缓存之类的辅助功能,不做数据持久化也没有关系

redis有rdb和aof两种持久化方式,rdb是快照的形式,保存是redis数据库在某个时刻的数据状态,aof类似于mysql的binlog日志,记录的是每一次对redis的写操作.  文档: http://www.redis.cn/topics/persistence.html

 

通过配置save参数启用rdb持久化,如果不想使用rdb持久化,配置save "" 即可

save 900 1                                     
save 300 10         
save 60 10000   

就像定时任务一样,每隔900秒检测是否超过1个key修改,是就刷新数据到rdb文件

 

appendonly yes   开启aof持久化

 

rdb和aof两种方式并不冲突,可以同时使用两种持久化方式

理论上rdb持久化可能丢失数据,比如config set save "900 1"的时候,最多可能丢失900秒的数据

但是执行下面三种操作都触发了redis关机时的自动持久化,所以即使宕机一般也不会丢失数据

(1 )执行shutdown的redis命令

(2) kill 掉进程

(3) 非守护进程模式下 ctrl + c

打印如下日志:

7861:M 24 Jun 2019 01:03:45.567 * Saving the final RDB snapshot before exiting.

7861:M 24 Jun 2019 01:03:45.570 * DB saved on disk

7861:M 24 Jun 2019 01:03:45.570 * Removing the pid file.

7861:M 24 Jun 2019 01:03:45.570 # Redis is now ready to exit, bye bye...

 

aof持久化方式下 appendfsync 为 always时,数据是很安全的

appendfsync为everysec时,理论上最多丢失1s的数据,但是执行前面三种操作模拟宕机的时候,redis同样在关机前执行了一次aof的持久化操作,日志如下:

7713:signal-handler (1561913121) Received SIGTERM scheduling shutdown...
7713:M 01 Jul 2019 00:45:22.050 # User requested shutdown...
7713:M 01 Jul 2019 00:45:22.050 * Calling fsync() on the AOF file.
7713:M 01 Jul 2019 00:45:22.050 # Redis is now ready to exit, bye bye...

 

备注: 操作系统: centos 7 ; redis版本: 5.0.3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值