redis运维相关(基本数据库命令)【十四】

-----------------------------运维相关-------------------------

redis持久化,两种方式
1、rdb快照方式
2、aof日志方式

----------rdb快照------------
save 900 1
save 300 10
save 60 10000

stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /var/rdb/

-----------Aof的配置-----------
appendonly no # 是否打开 aof日志功能

appendfsync always #每一个命令都立即同步到aof,安全速度慢
appendfsync everysec
appendfsync no 写入工作交给操作系统,由操作系统判断缓冲区大小,统一写入到aof 同步频率低,速度快


no-appendfsync-on-rewrite yes 正在导出rdb快照的时候不要写aof
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb


./bin/redis-benchmark -n 20000

 

---------主从复制----------------

Master配置
1:关闭rdb快照(备份工作交给slave)
2:可以开启aof

slave配置:
1、声明slave-of
2、某一个slave打开rdb快照功能
3、配置是否只读 slave-read-only
4、可选配置密码(内网可不必)
在主服务器配置中修改 requirepass 123456
客户端连上后需要 auth 123456才能访问
但是从服务器已经连不成功master
需要在从服务器配置上 masterauth 123456

cp redis.conf redis6380.conf
cp redis.conf redis6381.conf

pidfile /var/run/redis6380.pid
port 6380
dbfilename dump6380.rdb
dir /var/rdb/

注:每次slave断开后,再次连接master时,都要master全部dump出来rdb再aof,即同步的过程需要重新来一遍
所以要记住,多台slave不要一下都启动起来

 


-------------redis运维--------------
TIME 查看时间戳与微秒数
127.0.0.1:6379> time
1) "1423329581"
2) "398972"

dbsize 查看当前库中的key数量
bgrewriteaof 后台进程重写aof
bgsave 后台保存rdb快照
save 保存rdb快照
lastsave 上次保存时间
slaveof 设为slave服务器
flushall 清空所有db
flushdb 清空当前db
shutdown save|nosave 断开连接关闭服务器


slowlog显示慢查询
(多慢才算慢? slowlog-log-slower-than 10000)
存多少条? slowlog-max-len 128 
查看慢日志 slowlog get
config get slowlog-log-slower-than 
config set slowlog-log-slower-than 10


info 显示服务器信息
config get 获取配置信息
config set 设置配置信息
monitor 打开控制台
sync 主从同步
client list 客户端列表
client kill 关闭某个客户端
client setname 为客户端设置名字
client getname 获取客户端名字


-----
如果不小心flushall了
应该首先 shutdown nosave
然后编辑aof
重启

补充:scan 查看key

  scan 可以替代 keys ccc* 来查看key, 如果key 过多的情况下,keys * 容易崩溃。scan 提供了分页功能

三个参数: 第一个是cursor 整数值,第二个是key 的正则模式,第三个是遍历的limit hint

例如:

127.0.0.1:6379> scan 0 match com* count 4
1) "0"
2) 1) "compant22"
   2) "company"
   3) "compant"

 

补充: redis 集群相关运维

复制代码
CONFIG GET *
# 获取配置信息
CONFIG GET appendonly
# 获取具体的某个配置

主从:(需要手动连接到每个节点并查看其角色)
INFO REPLICATION
# 返回很多信息,包括节点的角色(role:master 或 role:replica),主节点的 IP 地址和端口(对于从节点而言),以及复制偏移量等。

分片:
cluster info 
# 列出集群中的所有节点及其角色、以及分配的插槽信息。但请注意,这个命令只在 Redis 集群模式下有效。
cluster nodes
#列出集群中所有节点的信息,包括节点的 ID、IP 地址、端口、状态、分配的插槽信息等
cluster slots
# 显示集群中每个槽位(slot)的分配情况。Redis 集群使用 16384 个槽位来存储数据,每个节点负责一部分槽位。
cluster keyslot keyName    得到插槽值
# 查看key 对应的slot
复制代码

 slot计算方式:slot = crc16(key) mod 16384,java 代码: hutool 工具包

        CRC16XModem crc16XModem = new CRC16XModem();
        crc16XModem.update("task:dataQueue:summaryInfo:DEFAULT".getBytes());
        System.out.println(crc16XModem.getValue() % 16384);

 

posted @   QiaoZhi  阅读(262)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示