前言
Redis学习记录
Redis下载
Windows下载地址3.x.x
Windows下载地址5.x.x
Windows下配置
redis.windows.conf文件配置密码
requirepass password(你的密码)
Windows下启动
1 2 3 4 5 6 7
| @echo off cd /d D:\Redis-x64-3.2.100[替换为你的redis路径]
start redis-server.exe redis.windows.conf
echo redis start... ::pause
|
在Redis目录下运行
1
| redis-cli.exe -h 127.0.0.1 -p 6379
|
Redis服务安装
1
| redis-server --service-install redis.windows-service.conf --loglevel verbose
|
提示 Redistribution successfully installed as a service.即安装成功
Redis-cli命令行远程连接Redis服务
1 2
| redis-cli -h host -p port -a password redis-cli -h 192.168.1.131 -p 6379 -a ''
|
查看redis客户端连接
1 2 3 4 5 6 7
| redis-cli info clients
# Clients connected_clients:6000 client_longest_output_list:0 client_biggest_input_buf:5792 blocked_clients:0
|
查看redis客户端状态
1 2 3 4
| redis-cli client list # list addr=127.0.0.1:52555 fd=5 name= age=855 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client addr=127.0.0.1:52787 fd=6 name= age=6 idle=5 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
|
age:表示连接存在的时间,单位秒
idle:表示连接空闲时间,单位秒
查看redis客户端超时设置
1 2 3
| redis-cli config get timeout "timeout" "0" #0表示不开启空闲清除
|
设置空闲清理时间
1
| redis-cli config set timeout 600 #单位秒
|
redis 60 秒内的最大响应延迟
1
| redis-cli -h 127.0.0.1 -p 6379 --intrinsic-latency 60
|
查看一段时间内 Redis 的最小、最大、平均访问延迟
1
| redis-cli -h 127.0.0.1 -p 6379 --latency-history -i 1
|
redis慢日志命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| # 命令执行耗时超过 5 毫秒,记录慢日志 CONFIG SET slowlog-log-slower-than 5000 # 只保留最近 500 条慢日志 CONFIG SET slowlog-max-len 500 # 查看最近的5条慢日志 SLOWLOG get 5
# 集中过期会导致 Redis 延迟变大,因为主动过期 key 的定时任务,是在 Redis 主线程中执行的。 # 设置 key 的过期时间时,增加一个随机时间 # 1.在过期时间点之后的 5 分钟内随机过期掉 redis.expireat(key, expire_time + random(300)) # 2.Redis 4.0 以上版本,开启 lazy-free 机制 # 释放过期 key 的内存,放到后台线程执行 lazyfree-lazy-expire yes
# 查看 Redis 进程是否使用到了 Swap,内存被换到了磁盘上会变慢 # 先找到 Redis 的进程 ID ps -aux | grep redis-server # 查看 Redis Swap 使用情况 cat /proc/$pid/smaps | egrep '^(Swap|Size)'
# redis内存碎片 Memory # 内存碎片率计算:mem_fragmentation_ratio = used_memory_rss / used_memory
# 开启自动内存碎片整理(总开关) activedefrag yes # 内存使用 100MB 以下,不进行碎片整理 active-defrag-ignore-bytes 100mb # 内存碎片率超过 10%,开始碎片整理 active-defrag-threshold-lower 10 # 内存碎片率超过 100%,尽最大努力碎片整理 active-defrag-threshold-upper 100 # 内存碎片整理占用 CPU 资源最小百分比 active-defrag-cycle-min 1 # 内存碎片整理占用 CPU 资源最大百分比 active-defrag-cycle-max 25 # 碎片整理期间,对于 List/Set/Hash/ZSet 类型元素一次 Scan 的数量 active-defrag-max-scan-fields 1000
|