redis消息模式、事务、慢日志查询、备份恢复

1.redis消息模式

发布消息通常有两种模式分为:队列模式(queuing)和发布订阅模式(publish-subscribe)。

队列模式中,consumers可以同时从服务端读取消息,每个消息只被其中一个consumer读到。

发布订阅模式中消息被广播到所有的consumer中,topic中的消息将被分到组中的一个成员中。同一组中的consumer可以在不同的程序中,也可以在不同的机器上。

订阅发布实例:

subscribe mq1 #客户端

publish mq1 “Redis is a great caching technique”

扫描二维码关注公众号,回复: 9607524 查看本文章

psubscribe订阅一个或多个符合给定模式的频道

psubscribe news "tech."

publish channel message

将信息message发送到指定的频道channel。返回值代表消费者数量

pubsub channels显示订阅频道

pubsub numsub news 打印各频道订阅者数量

punsubscribe退订多个频道

subscribe订阅给定的一个或多个频道的信息

unsubscribe退订频道

2、Redis事务

事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序的执行。

事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。

原子性:事务中的命令要么全部被执行,要么全部都不执行。

执行过程:

  开始事务

  命令入队

  执行事务

事务命令:

discard 取消事务,放弃执行事务块内的所有命令

exec 执行所有事务块内的命令

multi 标记一个事务块的开始

watch key [key ...] 监视一个或多个key,如果再事务执行之前这个(或这些)key被其他命令所改动,那么事务将被打断。

unwatch 取消watch命令对所有key的监视

实例:

127.0.0.1:6380> zadd salary 3000 zhangsan 5000 lisi
(integer) 2
127.0.0.1:6380> multi
OK
127.0.0.1:6380> zincrby salary 1000 zhangsan
QUEUED
127.0.0.1:6380> zincrby salary -1000 lisi
QUEUED
127.0.0.1:6380> exec
1) "4000"
2) "4000"
127.0.0.1:6380> zrange salary 0 -1 withscores
1) "lisi"
2) "4000"
3) "zhangsan"
4) "4000"
3.服务器命令

info  查看服务器配置信息

client list  查看当前连接客户端ip及端口

client kill ip:port 关闭客户端ip及端口

config get *

config resetstat 重置统计

config get/set 动态修改

dbsize

flushall 清空所有数据 select 1

flushdb 清空当前库

monitor 监控实时指令

127.0.0.1:6380> monitor
OK
1583403427.636228 [0 127.0.0.1:43648] "set" "name" "123"
1583403432.837921 [0 127.0.0.1:43648] "get" "name"

shutdown 关闭服务器

save 将当前数据保存

slaveof host:port 主从配置

slaveof no one

sync 主从同步

role返回从角色

4、慢日志查询:

slow log是redis用来记录查询执行时间的日志系统

slow log保存在内存里面,读写速度非常快

可以通过改写redis.conf文件或者用config get和config set命令对它们动态的进行修改

slowlog-log-slower-than 10000 超过多少微秒

config set slowlog-log-slower-than 100

config set slowlog-max-len 1000 保存多少慢日志

config get slow*    //查询当前慢日志

127.0.0.1:6380> config get slow*
1) "slowlog-log-slower-than"
2) "10000"
3) "slowlog-max-len"
4) "128"

slowlog get

slowlog reset

5.备份数据

config get dir 获取当前目录

save备份(无持久化策略时),生成时在redis当前目录中。

恢复时只需要将dump.rdb放入redis当前目录

127.0.0.1:6380> set name zhangsan
OK
127.0.0.1:6380> save
OK
关闭redis数据库后,备份直接拷贝生成的dump.rdb数据文件即可

还原数据时,将之前备份的dump.rdb数据文件拷贝回数据库数据文件夹,重启数据库即可

猜你喜欢

转载自www.cnblogs.com/Simplelearning/p/12424103.html
今日推荐