Redis优化

来源:互联网 发布:运动健康软件下载 编辑:程序博客网 时间:2024/06/05 08:43

1、慢命令

举例:订单列表曾经使用keys命令,用来查询符合条件的key。虽然很好用,但是确实非常耗时。

如何查询耗时大的命令?

slowlog 

通过slowlog命令可以查出哪些命令执行慢,

可以通过使用Redis-cli工具,输入slowlog get命令查看。slowlog get 10 表示查看10个最慢的命令。

1=日志唯一标示

2=记录的时间点

3=执行时间,以毫秒为单位

4=执行的命令,以数组的形式排列。完整命令是config get *


redis默认会记录10ms的命令,如何修改阀值?

config set slowlog-log-slower-than 5000


2、命令多,存在排队等待的命令

命令队列里的命令过多时,后面的命令会处于排队等待的状态。

可以使用多参数命令,一个命令操作多个参数。

例如:set 命令是设置一个参数。mset可以设置多个key的值。

可以使用管道命令pipeline,把几个命令合并起来执行。

尽量减少大集合的复杂操作。集合越大,获取数据的时间就会增大。

3、内存

可以通过info memory 获取redis的内存使用等相关信息。

used_memory  redis的内存使用量(byte) :实际缓存占用的内存和Redis自身运行所占用的内存

used_memory_human  redis的内存使用量(m) 注:其实只是单位不一样。

 used_memory_rss:从操作系统上显示已经分配的内存总量。

 mem_fragmentation_ratio: 内存碎片率。

 used_memory_lua: Lua脚本引擎所使用的内存大小。

 mem_allocator: 在编译时指定的Redis使用的内存分配器,可以是libc、jemalloc、tcmalloc。

如果redis内存使用量超过最大内存(userd_memory > 可用最大内存),旧的,不使用的数据会被

写入硬盘,用来腾地。而硬盘的读写要比内存慢很多。

如果能减少内存使用?

可以使用Hash数据结构。因为Redis在储存小于100个字段的Hash结构上,其存储效率是非常高的。

设置key的过期时间。如果有些key并不是需要长期存在,可以设置过期时间,过期后,会自动被删除。

0 0
原创粉丝点击