美文网首页
为什么Redis不共享包含字符串的对象?

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

作者: 无尘粉笔 | 来源:发表于2020-07-13 22:53 被阅读0次

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

  • 如果共享对象是保存整数值的字符串对象,那么检验操作的复杂度为O(1);
  • 如果共享对象是保存字符串的字符串对象,那么检验操作的复杂度为O(N);
  • 如果共享对象是包含多个值,或者对象的对象,比如,列表对象或者哈希对象,那么检验操作的复杂度为O(N2);
    因此,尽管共享更复杂的对象可以节约更多的内存,但是受到CPU时间的限制,Redis只对包含整数值的字符串进行共享。

相关文章

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

    当服务器考虑将一个共享对象设置为键的值对象时候,程序需要先检查给定的共享对象和键想创建的目标对象是否完全相同,只有...

  • redis中的对象

    redis的对象包含5种对象: 字符串对象 列表对象 哈希对象 集合对象 有序集合对象 redis对象的好处 针对...

  • 第 8 章(对象)

    Redis Object Redis 基于之前的那些数据结构创建了一个系统对象,这个系统包含字符串对象、列表对象、...

  • Redis-数据结构-RedisObject、字典

    一、对象 redisObject 1、定义与结构 redis使用对象来表示数据库中的键和值,对象包含字符串(str...

  • Redis' strings

    Redis字符串基本操作命令 底层实现 Redis中,字符串对象是一个基础对象,所有键值均是字符串对象。Redis...

  • 对象

    redis通过对象(我们key和value都使用对象)来使用我们之前说的几种数据结构 对象包含:字符串对象,列表对...

  • Redis对象类型和底层数据结构

    Redis对象类型(类型常量:对象名称) REDIS_STRING: 字符串对象 REDIS_LIST: ...

  • redis

    类型常量 对象的名称REDIS_STRING 字符串对象REDIS_LIST 列表对象REDIS_H...

  • Redis对象

    Redis是基于上一篇文章所说的数据结构创建了一个对象系统,这个系统包含字符串对象、列表对象、哈希对象、集合对象和...

  • redis笔记:对象

    本人博客同步发表,排版更佳 对象的类型 redis中的对象包括: 字符串对象 REDIS_STRING 列表对象 ...

网友评论

      本文标题:为什么Redis不共享包含字符串的对象?

      本文链接:https://www.haomeiwen.com/subject/cecthktx.html