Redis五个基本数据类型详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis五个基本数据类型详解相关的知识,希望对你有一定的参考价值。

参考技术A

docker pull redis

docker run -p 6379:6379 --name redis -v 路径/redis.conf:/etc/redis/redis.conf -v 路径/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes

如果在setnx之后执行expire之前进程意外crash或者要重启维护了,那会怎么样?

set指令有非常复杂的参数,这个应该是可以同时把setnx和expire合成一条指令来用的!后面会讲具体怎么做。

下面是sds定义

而对于SDS,由于len属性和free属性的存在,对于修改字符串SDS实现了空间预分配和惰性空间释放两种策略:

1、空间预分配:对字符串进行空间扩展的时候,扩展的内存比实际需要的多,这样可以减少连续执行字符串增长操作所需的内存重分配次数。

2、惰性空间释放:对字符串进行缩短操作时,程序不立即使用内存重新分配来回收缩短后多余的字节,而是使用 free 属性将这些字节的数量记录下来,等待后续使用。(当然SDS也提供了相应的API,当我们有需要时,也可以手动释放这些未使用的空间。)

在原来的单链表基础上,我们查询数据需要从头遍历到尾,时间复杂度太高了。我们在思考提高查询效率时,在原有链表上添加索引,如果还是觉得查询太慢我们又在索引上再增加一级索引,以此类推。跳跃表的实质就是在单链表上一级一级地增加索引来达到加快查询的目的。

参考: https://zhuanlan.zhihu.com/p/161835019

以上是关于Redis五个基本数据类型详解的主要内容,如果未能解决你的问题,请参考以下文章

Redis数据类型详解(5基本+3特殊)

python redis操作(五个基本类型集群管道池远程连接)

python redis操作(五个基本类型集群管道池远程连接)

python redis操作(五个基本类型集群管道池远程连接)

Redis学习--- 安装基本命令及常见五大数据类型详解

Redis的基本数据类型详解,和用java进行连接Redis的操作,把对象序列化到Redis中