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

 

posted on 2019-10-18 18:12  标配的小号  阅读(385)  评论(0编辑  收藏  举报

导航