[redis] redis 对象

三、对象 Redis Object 是什么? redis是key-value存储,key-value在redis中被抽象为对象(Object),key只能是String对象,value支持丰富的对象类型{String, List, Set, Hash, Sorted Set, Stream…} Object在内存中的样子 #define LRU_BITS 24 typedef struct reidsObject { unsigned type:4; unsigned encoding:4; unsigned lru:LRU_BITS; int refcount; void *ptr; } robj; Type: 查看redis对象 Encoding: 表明使用哪种底层编码 Lru: 记录对象访问信息,用于内存淘汰 Refcount: 引用计数,用来描述有多少指针,指向该对象 Ptr: 内容指针,指向实际内容 对象与数据结果 实际操作的对象有6个Redis对象,他们的底层依赖一些数据对象,包括字符串、跳表、哈希表、压缩列表、双端列表等 1.String String是什么 String是字符串,是Redis中最基本的数据对象,最大为512MB,可以通过配置项proto-max-bulk-len修改它 String可以存储各种类型的字符串(包括二进制文件) 适用场景 使用场景:一般用来存放字节数据、文本数据、序列化****后的对象数据 例子: 缓存场景:Value存Json字符串等信息 计数场景:因为Redis处理命令是单线程,所以执行命令的过程是原子的,因此String数据类型适合计数场景 在redis中怎么使用: 常用操作:创建、查询、更新、删除 创建 –> set, setnx SET key value # 设置一个key值为特定的value set命令扩展参数:EX(键过期时间秒)、PX(键过期时间毫秒)、NX(只有键不存在时才对键进行操作,基本替代下面的SETNX操作)、XX(键存在时才对键进行操作) SETNX key value # 用于在指定的key不存在时,为key设置指定的值 查询 –> get, mget Get key # 查询某个key,存在就返回对应的value,不存在返回nil ...

October 26, 2024 · 4 min · Chen-Hang

[redis] Base理论

Redis的基本概念及其应用场景,并解释了BASE理论

October 25, 2024 · 1 min · Chen-Hang