Redis常用运维命令
1.启动命令
按照我其他博客的按照方法,启动命令为/etc/init.d/redis_6379 start
2.查看内存统计信息
[root@bogon ~]# redis-cli 127.0.0.1:6379> info memory # Memory used_memory:821512 #由 Redis 分配器分配的内存总量,包含了redis进程内部的开销和数据占用的内存,以字节(byte)为单位 used_memory_human:802.26K #以更直观的单位展示分配的内存总量。以下含有human的都是以更加直观的单位显示而已 used_memory_rss:7704576 #向操作系统申请的内存大小。与 top 、 ps等命令的输出一致 used_memory_rss_human:7.35M used_memory_peak:821512 #redis的内存消耗峰值(以字节为单位) used_memory_peak_human:802.26K total_system_memory:1023934464 #整个系统内存 total_system_memory_human:976.50M used_memory_lua:37888 #Lua脚本存储占用的内存 used_memory_lua_human:37.00K maxmemory:0 #Redis实例的最大内存配置 maxmemory_human:0B maxmemory_policy:noeviction #当达到maxmemory时的淘汰策略 mem_fragmentation_ratio:9.38 #碎片率,used_memory_rss/ used_memory mem_allocator:jemalloc-4.0.3 #内存分配器 127.0.0.1:6379>
3.查询慢命令
127.0.0.1:6379> slowlog get #后面加个10,可以查询最慢的10条命令 1) 1) (integer) 0 2) (integer) 1571389968 3) (integer) 24123 4) 1) "info" 2) "memory" 127.0.0.1:6379>
4.碎片率处理
内存碎片率稍大于1是合理的,这个值表示内存碎片率比较低,也说明redis没有发生内存交换。但如果内存碎片率超过1.5,那就说明Redis消耗了实际需要物理内存的150%,其中50%是内存碎片率,这些碎片所占用的内存代表的含义是Redis没有把内存归还给操作系统。若是内存碎片率低于1的话,说明Redis内存分配超出了物理内存,操作系统正在进行内存交换。
解决redis内存碎片问题:
1、如果内存碎片率超过1.5,重启Redis服务器可以让额外产生的内存碎片失效并重新作为新内存来使用,使操作系统恢复高效的内存管理。在重启服务之前,可以手动save一次redis数据,这样能保证在执行Redis关闭时不丢失任何数据。
2、如果内存碎片率低于1,Redis实例可能会把部分数据交换到硬盘上。内存交换会严重影响Redis的性能,所以应该增加可用物理内存或减少实Redis内存占用。
3、修改redis内存分配器。Redis支持glibc、jemalloc、tcmalloc几种不同的内存分配器,每个分配器在内存分配和碎片上都有不同的实现。通常使用redis默认的jemalloc内存分配器即可。
5.查看当前库中的key数量
127.0.0.1:6379> dbsize (integer) 1
6.Redis应用场景
1.缓存 2.计数器 3.排行榜 4.定位功能 5.简单的信息系统 6.交友
7.登陆命令
redis-cli -p 5566 -a password
8.持久化
save:将数据同步保存到磁盘
bgsave:将数据异步保存到磁盘
lastsave:返回上次成功将数据保存到磁盘的Unix时戳
shundown:将数据同步保存到磁盘,然后关闭服务
9.测试Redis性能
redis-benchmark-h localhost -p 6379 -c 100 -n 100000 #100个并发连接,100000个请求,检测host为localhost 端口为6379的redis服务器性能
10.查询系统信息
redis-cli info
11.查询慢查询条数
slowlog len
12.清空慢查询
slowlog reset