暂无图片
为什么Redis不共享包含字符串的对象?
我来答
分享
2023-05-20
为什么Redis不共享包含字符串的对象?

为什么Redis不共享包含字符串的对象?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
胡武

当服务器考虑将一个共享对象设置为键的值对象时,程序需要先检查给定的共享对象和键想创建的目标对象是否完全相同,只有在共享对象和目标对象完全相同的情况下,程序才会共享对象用作键的值对象,而一个共享对象保存的值越复杂,验证共享对象和目标对象是否相同所需的复杂度就会越高,消耗的CPU时间也会越多:

   如果共享对象是保存整数值的字符串对象,那么验证操作的复杂度为O(1);

   如果共享对象是保存字符串值的字符串对象,那么验证操作的复杂度为O(N);

   如果共享对象是包含了多个值(或者对象)的对象,比如列表对象或者哈希对象,那么验证操作的复杂度将会是O(N的2次方)。

因此,尽管共享更复杂的对象可以节约更多的内存,但受到CPU时间的限制,Redis只对包含整数值的字符串对象进行共享。

暂无图片 评论
暂无图片 有用 2
打赏 0
暂无图片
回答交流
Markdown


请输入正文
提交
相关推荐
Redis连接报错:ERR unknown command 'select',可能是什么原因?
回答 1
select后面带上db的号码比如。select1
redis的配置文件经常会在0点更新 导致重连失败,怎么解决?
回答 1
应该是有什么定时任务触发的,查查看。
postgresql 有没这种功能。 我有一个物料表,删除和更新都自动写入redis?
回答 4
已采纳
我觉得没有哪个库有这个功能。都需应用自己实现。
redis数据迁移失败
回答 2
redis集群扩容过程中,所有节点持久化都必须开启吗?
redis集群三主三从,从节点也能执行写操作吗?
回答 1
从节点不可以执行操作。redis同步是异步
程序遍历redis所有key有风险吗?
回答 1
已采纳
尽量避免完全遍历,尤其是链表结构,List长度越大,耗时会越久。
开启aof之后,由于磁盘IO问题导致的Redis变慢,怎么解决?
回答 1
既然要持久化,必然要面对磁盘写入的问题。性能和安全一直是对立的。如果要性能就放松一点安全。要安全就放松一点性能。都要保证就要成本。请使用IO高的介质。比如Nvme等等。https://mp.weixi
Redis 慢查询配置是10ms,现在要查超过2ms的请求,不修改配置的情况下可以查吗?
回答 1
已采纳
据我浅薄的认知不行啊。除非你开着monitor在那里看。但是这个不现实,太快了。看不过来。
Redis 实战书籍有哪些值得推荐?
回答 1
这本可以看看,正好我在抽奖送书📚,可以来碰碰运气,说不定就中了🤭❤️为了回馈粉丝!发一波中秋节福利:送书啦!
redis 哪个客户端好用?
回答 3
我是win系统。用的是RedisDesktopManager