记一次redis性能的急剧下降
虽然redes没有崩掉,但是性能急剧下降,导致应用服务读写redis读写超时。
简单解决方法
一句命令搞定,CONFIG SET maxmemory 它可以立即改变 Redis 的最大内存限制,无需重启 Redis。
通过 CONFIG GET maxmemory 查看是否修改成功 。
最终解决方案-redis的集群
在 Redis 集群中,每个节点都有固定的槽位数(slot),通常为 16384 个,每个槽位对应一个键。当需要访问某个键时,客户端会先将键散列为一个哈希值,然后根据该哈希值确定槽位编号,最后将数据请求发送到负责该槽位的节点上,从而实现分片和负载均衡。
我们公司原来是单体模式的,还需要修改代码Redis的Connection
var configurationOptions = new ConfigurationOptions { EndPoints = { { "192.168.1.100", 6379 }, { "192.168.1.101", 6379 } }, AllowAdmin = true, Password = "yourpassword" }; // 创建 Redis 连接对象 var connectionMultiplexer = ConnectionMultiplexer.Connect(configurationOptions); // 获取 Redis 数据库对象 IDatabase database = connectionMultiplexer.GetDatabase(); // 使用 Redis 数据库对象进行操作 database.StringSet("key", "value");