首页 > 编程知识 正文

redis8种存储类型,redis常用的数据类型

时间:2023-05-03 17:23:02 阅读:33444 作者:872

文章目录序言一、字符串二、散列(hashes )三、列表)四、集合(sets )五、有序集合(sorted sets )六、事务总结

前言Redis是一个开源的内存级数据结构存储系统,可以用作数据库、缓存和消息中间件。 字符串(字符串)、散列(列表)、集合(集)、有序集合)、范围查询、bitmaps、hyperloglogs、hyperlogloglogs 内置有LUA脚本、LRU驱动事件、事务、不同级别的磁盘持久性和redistence,通过redications。本文将来将讨论其基本数据类型的使用和应用场景。

另一方面,字符串String是最简单的类型,一个key对应一个value,字符串类型是二进制安全的。 Redis字符串可以包含任何数据,如jpg图像或序列化对象。 内部实现的本质是字节数组,字符串大小限制在512米以内。

二、散列密钥-散列映射结构的一些属性可以保持较长时间,如Hash将对象的各个属性存入Map里,可以只读取/更新对象的某些属性,而不是字符串类型将整个对象持久化为JSON格式另外,不同的模块可以只更新感兴趣的属性,而不同时覆盖彼此之间的冲突。

三、列表(Lists )列表为双向链表,支持双向Pop/Push。 通常有左端的Push、右端的Pop——LPush/RPop以及Blocking的版本BLPop/BRPop。 多个客户端同时阻止并等待,信息进入时谁先阻止,谁先服务。 任务队列系统Resque是其典型应用。

四.集合(Sets ) Set必须是Set、无序、关键唯一的。 可以自由加入重复的要素,Set会自动变重。 基础实现也是hash table,可以实现多个集合之间的交叉、并集和差集。

五.有序集合(sorted sets )有序集合与set基本相同,不同之处在于有序、可范围搜索,在元素放入集合时提供该元素的分数。

六、提交事务前,不执行任何指令,只存储在一个队列中,不影响其他客户端的操作。 提交事务时,批量执行所有指令。

注意: Redis的事务和我们平时的事务概念很不一样:

1、只是保证事务中的操作连续独占执行。 因为它是单线程的体系结构,所以在执行事务中的所有指令之前,不能同时执行来自其他客户端的请求。

2、没有独立性水平的概念。 由于在提交事务之前没有实际执行任何指令,因此不存在“事务中的查询必须看到事务中的更新,而不能看到事务外的查询”的非常头疼的问题。

3、它不保证原子性——的所有命令同时成功或同时失败。 只有决定是否开始执行所有指令的能力,没有能力执行并回滚到一半。 在redis中失败分为两类,一类是明显的指令错误,如指令名称拼写错误、指令参数差异,2.6版不执行所有指令。 另一个是隐含的。 例如,在事务中,第一个语句是SET foo bar,第二个语句是LLEN foo。 对第一条语句生成的字符串类型的密钥运行LLEN将失败,但只有在运行命令后才能发现此错误。 此时,第一句成功,第二句失败。 另外,如果事务在redis被KILL之前执行,则已经执行的指令也不会回滚。

摘要redis数据存储在内存中,内存响应时间约为100纳秒,采用无阻塞I/O复用机制,支持每秒1万亿级访问。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。