redis骚操作

送分小仙女□ 提交于 2020-04-05 22:30:51

redis相关

1.redis
发布 PUBLISH 发送消息
publish channel 消息

订阅 SUBSCRIBE 订阅消
等待发送者,向管道发送消息
subscribe channel channel2 channel3

频道 channel
自定义频道的名字

支持正则的频道订阅
psubscribe 支持正则的频道

publish   channel   消息

redis数据持久化
redis数据放在内存中
重启服务器丢失数据
重启redis服务丢失数据
断电丢失数据

为了防止redis数据丢失,进行持久化,将数据,写入到一个文件中

redis持久化之RDB
1.基于内存的数据快照
2.定期执行数据快照
3.手动触发数据快照

如何配置rdb数据持久化
1.在配置文件中,添加rdb持久化参数
redis-6379.conf
写入如下配置
[root@qishione redis-4.0.10]# cat redis-6379.conf
port 6379
daemonize yes
pidfile /data/6379/redis.pid
loglevel notice
logfile "/data/6379/redis.log"
dir /data/6379
protected-mode yes
dbfilename dbmp.rdb
save 900 1
save 300 10
save 60 10000

2.触发rdb持久化,可以手动save命令即可,生成 dump.rdb持久化文件

3.重启redis,数据不再丢失

4.rdb数据文件是二进制文件,人为的看不懂

redis持久化之aof
配置方式
1.在配置文件中,添加aof参数
在redis-6379.conf中添加参数,开启aof功能
appendonly yes
appendfsync everysec

2.重启redis数据库,加载aof功能

redis面试题
在不重启redis的情况下,切换rdb数据到aof数据中
1.配置redis支持rdb持久化

2.启动redis客户端,通过命令,临时切换到aof模式
127.0.0.1:6379> CONFIG set appendonly yes
OK
127.0.0.1:6379> CONFIG SET save ""
OK
3.检查此时的数据持久化方式是rdb,还是aof,检查appendonly.aof文件,数据变动
tail -f appendonly.aof

4.此时aof还未永久生效,写入参数到配置文件
编辑redis-6379.conf 添加如下参数
appendonly yes
appendfsync everysec

redis主从同步实现
1.准备三个redis数据库,redis支持多实例
三个配置文件,仅仅是端口的不同
在三个配置文件中,添加主从同步的参数
-rw-r--r-- 1 root root 211 1月 15 11:01 redis-6379.conf
port 6379
daemonize yes
pidfile /data/6379/redis.pid
loglevel notice
logfile "/data/6379/redis.log"
dir /data/6379
protected-mode yes
dbfilename dbmp.rdb

	save 900 1
	save 300 10 
	save 60 10000

-rw-r--r-- 1 root root 211 1月 15 11:18 redis-6380.conf
port 6380
daemonize yes
pidfile /data/6380/redis.pid
loglevel notice
logfile "/data/6380/redis.log"
dir /data/6380
protected-mode yes
dbfilename dbmp.rdb
save 900 1
save 300 10
save 60 10000
slaveof 127.0.0.1 6379

-rw-r--r-- 1 root root 211 1月 15 11:18 redis-6381.conf
[root@qishione redis-4.0.10]# cat redis-6381.conf
port 6381
daemonize yes
pidfile /data/6381/redis.pid
loglevel notice
logfile "/data/6381/redis.log"
dir /data/6381
protected-mode yes
dbfilename dbmp.rdb
save 900 1
save 300 10
save 60 10000
slaveof 127.0.0.1 6379

3.启动三个数据库实例,查看主从同步身份
redis-cli -p 6379 info replication
redis-cli -p 6380 info replication
redis-cli -p 6381 info replication

4.如果我主库挂了怎么办??

一主 挂了

两 从

解决方案:
1.手动切换主从身份,选举一个新的主库
1.干掉6379主库
2.在6380上关闭自己的slave身份
slaveof no one
3.在6381上给与新的主人身份
salveof 127.0.0.1 6380
4.修改完毕,还得修改配置文件,永久生效

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!