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

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

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

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

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

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

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

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

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


请输入正文
提交
相关推荐
求一份redis应急预案
回答 2
可以考虑集群。
Redis failover 无法切换到新的master上去?
回答 1
已采纳
切换是要用keepalive等把IP引过去才能连接到slave。master重启一定是可以的。
最近几年公司逐渐使用各种数据库,有什么好工具能够快速管理多种数据库吗?
回答 1
DBeaver、Navicat这两款相对来说是支持较多且通用的数据库管理工具和SQL客户端。你可以尝试试用一下,找适合自己的。但是通用的缺点肯定是没那些专用的好用的。就像Oracle,使用plsqld
想把redis里面的key 和数据复制到新key里怎么操作?
回答 2
MIGRATE命令了解下
redis 哪个客户端好用?
回答 3
我是win系统。用的是RedisDesktopManager
postgresql 有没这种功能。 我有一个物料表,删除和更新都自动写入redis?
回答 4
已采纳
我觉得没有哪个库有这个功能。都需应用自己实现。
docker 制作mysql镜像报错:keyserver received failed
回答 1
https://github.com/tianon/gosugpgbatchkeyserverhkps://keys.openpgp.org没用过gosu,看日志是这个环节的问题而您使用的那个keys
redis在db1中有将近500个key,有什么好办法把key导出来吗?
回答 1
已采纳
开启持久化,然后把底层的文件复制到其他的地方,启动就等于导出来了。
3台服务器搭建redis集群 其中一台重启后,1台服务有2个主,如何将其中一个主切换到其他服务器上
回答 1
你关闭主,再启动,就到其他的地方去了。
Redis客户端一直连接超时怎么解决,同样配置在虚拟机可以,但是在云服务器上单机或者集群都显示超时
回答 1
是不是网络不通啊?telnet端口通不通?