正文
Redis常用运维命令
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
1.启动命令
按照我其他博客的按照方法,启动命令为/etc/init.d/redis_6379 start
2.查看内存统计信息
[root@bogon ~]# redis-cli
127.0.0.1:> info memory
# Memory
used_memory:821512 #由 Redis 分配器分配的内存总量,包含了redis进程内部的开销和数据占用的内存,以字节(byte)为单位
used_memory_human:.26K #以更直观的单位展示分配的内存总量。以下含有human的都是以更加直观的单位显示而已
used_memory_rss:7704576 #向操作系统申请的内存大小。与 top 、 ps等命令的输出一致
used_memory_rss_human:7.35M
used_memory_peak:821512 #redis的内存消耗峰值(以字节为单位)
used_memory_peak_human:.26K
total_system_memory:1023934464 #整个系统内存
total_system_memory_human:976.50M
used_memory_lua:37888 #Lua脚本存储占用的内存
used_memory_lua_human:.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:>
3.查询慢命令
127.0.0.1:> slowlog get #后面加个10,可以查询最慢的10条命令
) ) (integer)
) (integer)
) (integer)
) ) "info"
) "memory"
127.0.0.1:>
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:> dbsize
(integer)
6.Redis应用场景
1.缓存 2.计数器 3.排行榜 4.定位功能 5.简单的信息系统 6.交友
7.登陆命令
redis-cli -p -a password
8.持久化
save:将数据同步保存到磁盘 bgsave:将数据异步保存到磁盘 lastsave:返回上次成功将数据保存到磁盘的Unix时戳 shundown:将数据同步保存到磁盘,然后关闭服务
9.测试Redis性能
redis-benchmark-h localhost -p -c -n 100000 #100个并发连接,100000个请求,检测host为localhost 端口为6379的redis服务器性能
10.查询系统信息
redis-cli info
11.查询慢查询条数
slowlog len
12.清空慢查询
slowlog reset