解决redis内存不够的问题
为天地立心,为生民立命,为前圣继绝学,为万世开太平。今天遇到了一个问题
1 | Predis \ Response \ ServerException |
连接上redis
1
/usr/local/redis/bin/redis-cli
查看内存信息
1
info memory
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22used_memory:461709952
used_memory_human:440.32M
used_memory_rss:521863168
used_memory_rss_human:497.69M
used_memory_peak:461915512
used_memory_peak_human:440.52M
used_memory_peak_perc:99.96%
used_memory_overhead:2811662
used_memory_startup:786656
used_memory_dataset:458898290
used_memory_dataset_perc:99.56%
total_system_memory:3722543104
total_system_memory_human:3.47G
used_memory_lua:47104
used_memory_lua_human:46.00K
maxmemory:843000000
maxmemory_human:803.95M
maxmemory_policy:noeviction
mem_fragmentation_ratio:1.13
mem_allocator:jemalloc-4.0.3
active_defrag_running:0
lazyfree_pending_objects:0编辑配置文件
1
vi /usr/local/redis/etc/redis.conf
根据你机器的配置适当的修改
1
maxmemory 2gb
修改redis存储策略
默认的redis设置是非常保守的,即内存超限后就不在存储,可以把策略修改为LRU算法(最近最少使用算法)——新存储的信息会替换掉旧的信息,从而不会是内存越线,修改redis.conf。这个必须结合业务场景,如果没有自动加载数据到redis的缓存机制,会造成数据缺少。我觉得可以往这方面靠,能最大利用资源。1
maxmemory-policy volatile-lru
重启redis
1
2
3
4
5
6
7redis-cli -h 127.0.0.1 -p 6379 shutdown
#加上`&`号使redis以后台程序方式运行
./redis-server &
#启动时指定配置文件
redis-server ./redis.conf