redis一般存储什么类型数据

如题所述



Redis是一个开源的底层使用C语言编写的key-value存储数据库。可用于缓存、事件发布订阅、高速队列等场景。而且支持丰富的数据类型:string(字符串)、hash(哈希)、list(列表)、set(无序集合)、zset(sorted set:有序集合)
Redis在项目中的应用场景
1、缓存数据
最常用,对经常需要查询且变动不是很频繁的数据 常称作热点数据。
2、消息队列
相当于消息订阅系统,比如ActiveMQ、RocketMQ。如果对数据有较高一致性要求时,还是建议使用MQ)
3、计数器
比如统计点击率、点赞率,redis具有原子性,可以避免并发问题
4、电商网站信息
大型电商平台初始化页面数据的缓存。比如去哪儿网购买机票的时候首页的价格和你点进去的价格会有差异。
5、热点数据
比如新闻网站实时热点、微博热搜等,需要频繁更新。总数据量比较大的时候直接从数据库查询会影响性能
Redis数据类型的应用场景
前面提到了Redis支持五种丰富的数据类型,那么在不同场景下我们该怎么选择呢?
1、String
字符串是最常用的数据类型,他能够存储任何类型的字符串,当然也包括二进制、JSON化的对象、甚至是base64编码之后的图片。在Redis中一个字符串最大的容量为512MB,可以说是无所不能了。
2、Hash
常用作存储结构化数据、比如论坛系统中可以用来存储用户的Id、昵称、头像、积分等信息。如果需要修改其中的信息,只需要通过Key取出Value进行反序列化修改某一项的值,再序列化存储到Redis中,Hash结构存储,由于Hash结构会在单个Hash元素在不足一定数量时进行压缩存储,所以可以大量节约内存。这一点在String结构里是不存在的。
3、List
List的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销,Redis 内部的很多实现,包括发送缓冲队列等也都是用的这个数据结构。另外,可以利用 lrange 命令,做基于 Redis 的分页功能,性能极佳,用户体验好。
4、Set
set 对外提供的功能与 list 类似是一个列表的功能,特殊之处在于 set 是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,这个时候就可以选择使用set。
5、Sort Set
可以按照某个条件的权重进行排序,比如可以通过点击数做出排行榜的数据应用。
Redis特点:
1、Redis是纯内存操作,需要的时候需要我们手动持久化到硬盘中
2、Redis是单线程,从而避开了多线程中上下文频繁切换的操作。
3、Redis数据结构简单、对数据的操作也比较简单
4、使用底层模型不同,它们之间底层实现方式以及与客户端之间通信的应用协议不一样,Redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求
5、使用多路I/O复用模型,非阻塞I/O
更多Redis相关知识,请访问Redis使用教程栏目!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2024-01-01
1、String字符串是最常用的数据类型,他能够存储任何类型的字符串,当然也包括二进制、JSON化的对象、甚至是base64编码之后的图片。在Redis中一个字符串最大的容量为512MB,可以说是无所不能了。2、Hash常用作存储结构化数...Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sortedset:有序集合)。string是redis最基本的类型,可以理解成与Memcached一模一样的类型,一个key对应一个value。st...Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sortedset:有序集合)。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象,string类型的值最大能存储51...redis支持的数据类型就是列表、哈希、集合并和删除、获取子列表等。Redis支持的五种数据类型包括String、Hash、List、Set、Zset,其中,String类型的值可以是字符串、数字或二进制,但值最大不能超过512MB。String是一种常用的...Redis是一种存储key-value的内存型数据库,它的key都是字符串类型,value支持存储5种类型的数据:String(字符串类型)、List(列表类型)、Hash(哈希表类型、即key-value类型)、Set(无序集合类型,元素不可重复)、Zset...redis目前提供四种数据类型:string,list,set及zset(sortedset)。redis使用了两种文件格式:全量数据和增量请求。全量数据格式是把内存中的数据写入磁盘,便于下次读取文件进行加载;增量请求文件则是把内存中的数据序列化为操作...string类型是Redis最基本的数据类型,string类型的值最大能存储512MB。常用命令:get、set、incr、decr、mget等。应用场景:规key-value缓存应用。常规计数:点赞数,粉丝数。描述:hash是一个键值(key=>value...Hash类型Redis能够存储key对多个属性的数据(比如user1.unameuser1.passwd),当然,你完成可以把这些属性以json格式进行存储,直接把它当作string类型进行操作,但这样性能上是对影响的,所以redis提出的Hash类型。redis开创了一种新的数据存储思路,使用redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用redis灵活多变的数据结构和数据操作,为不同的大象构建不同的冰箱。redis常用数据类型re...Memcached会经历一个很慢的过程。Redis支持持久化只是它的一件武器,另外,Redis针对不同的需求也提供了多达5种数据存储方式,以最大效率上的实现你的需求,下面介绍一下这几种数据类型:一string(字符串)string是最简单的...《》
第2个回答  2024-01-01
1、String字符串是最常用的数据类型,他能够存储任何类型的字符串,当然也包括二进制、JSON化的对象、甚至是base64编码之后的图片。在Redis中一个字符串最大的容量为512MB,可以说是无所不能了。2、Hash常用作存储结构化数...Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sortedset:有序集合)。string是redis最基本的类型,可以理解成与Memcached一模一样的类型,一个key对应一个value。st...Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sortedset:有序集合)。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象,string类型的值最大能存储51...redis支持的数据类型就是列表、哈希、集合并和删除、获取子列表等。Redis支持的五种数据类型包括String、Hash、List、Set、Zset,其中,String类型的值可以是字符串、数字或二进制,但值最大不能超过512MB。String是一种常用的...Redis是一种存储key-value的内存型数据库,它的key都是字符串类型,value支持存储5种类型的数据:String(字符串类型)、List(列表类型)、Hash(哈希表类型、即key-value类型)、Set(无序集合类型,元素不可重复)、Zset...redis目前提供四种数据类型:string,list,set及zset(sortedset)。redis使用了两种文件格式:全量数据和增量请求。全量数据格式是把内存中的数据写入磁盘,便于下次读取文件进行加载;增量请求文件则是把内存中的数据序列化为操作...string类型是Redis最基本的数据类型,string类型的值最大能存储512MB。常用命令:get、set、incr、decr、mget等。应用场景:规key-value缓存应用。常规计数:点赞数,粉丝数。描述:hash是一个键值(key=>value...Hash类型Redis能够存储key对多个属性的数据(比如user1.unameuser1.passwd),当然,你完成可以把这些属性以json格式进行存储,直接把它当作string类型进行操作,但这样性能上是对影响的,所以redis提出的Hash类型。redis开创了一种新的数据存储思路,使用redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用redis灵活多变的数据结构和数据操作,为不同的大象构建不同的冰箱。redis常用数据类型re...Memcached会经历一个很慢的过程。Redis支持持久化只是它的一件武器,另外,Redis针对不同的需求也提供了多达5种数据存储方式,以最大效率上的实现你的需求,下面介绍一下这几种数据类型:一string(字符串)string是最简单的...《》
相似回答