Go游戏服务器开发的一些思考(七):Redis

本文探讨了Redis在游戏服务器开发中的应用,强调Redis的单线程特性及对高复杂度命令的敏感性。同时,分析了Redis集群的请求重定向、不支持跨机命令的问题以及合理配置Redis内存的重要性。还提到了避免滥用Redis,以及推荐Redis集群与Mysql分库结合的数据库部署方案,利用Redis缓存热点数据,减少资源消耗。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis

在使用Redis时,有些细节必须了解,这样才能更好的指导程序员使用Redis做开发

Redis是单线程的

Redis业务逻辑是在一个线程中进行的。了解这点非常重要。

在使用Redis命令时,对于时间复杂度为O(n)的命令,心中需要有个警钟,这里n的规模会是多大。若应用场景中n的规模会很大,则把这个命令写进代码,对于Redis来说是个灾难。

Redis集群中的请求重定向

客户端向Redis集群中的某台redis请求数据时,若该台redis上没有这条数据,该redis会把这数据所在的redis地址返回给客户端。客户端需根据返回的地址,重新向该地址的redis请求数据。

因此对redis集群的查询可能会出现2次查询。不过也有些客户端封装的比较好,内部维护一个redis插槽对应表,属于Smart客户端。这种客户端绝大多数都是1次查询

Redis集群不支持跨机命令

由于数据是分散在多台redis上的,像keys、mget、mset、事务等命令,Redis集群支持是不完整的。使用这种命令要小心,除非你明确所有的数据都在同一台redis上

单台Redis的内存不是越大越好

redis的内存越大,redis在做持久化时需要消耗的资源会越多、时间会越长。一个合理的redis内存应该在3-6G即可

Red

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fananchong2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值