1,redis的五种数据类型

redis的五种数据类型分别是:string、hash、list、set、zset。一、stringstring是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。string类型是Redis最基本的数据类型,string类型的值最大能存储512MB。二、hashRedishash是一个键值(key=>value)对集合。Redishash是一个string类型的field和value的映射表,hash特别适合用于存储对象。HMSET,HGET命令,HMSET设置了两个field=>value对,HGET获取对应field对应的value。三、list列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边)。列表最多可存储232—1元素(4294967295,每个列表可存储40多亿)。lpush设置值,lrange取值。四、setredis的set是string的无序集合。集合通过哈希表实现。添加一个string元素到key对应的set集合中,用sadd命令。返回1表示成功,0表示在集合中已存在,返回错误表示key对应的set不存在。查看用smembers命令。五、zsetredis的zset和set一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

redis的五种数据类型

2,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、ListList的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销,Redis 内部的很多实现,包括发送缓冲队列等也都是用的这个数据结构。另外,可以利用 lrange 命令,做基于 Redis 的分页功能,性能极佳,用户体验好。4、Setset 对外提供的功能与 list 类似是一个列表的功能,特殊之处在于 set 是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,这个时候就可以选择使用set。5、Sort Set可以按照某个条件的权重进行排序,比如可以通过点击数做出排行榜的数据应用。Redis特点:1、Redis是纯内存操作,需要的时候需要我们手动持久化到硬盘中2、Redis是单线程,从而避开了多线程中上下文频繁切换的操作。3、Redis数据结构简单、对数据的操作也比较简单4、使用底层模型不同,它们之间底层实现方式以及与客户端之间通信的应用协议不一样,Redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求5、使用多路I/O复用模型,非阻塞I/O更多Redis相关知识,请访问Redis使用教程栏目!

redis一般存储什么类型数据

3,Redis有哪几种数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。(推荐学习:Redis视频教程)String(字符串)string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。常用命令:set、get、decr、incr、mget等。注意:一个键最大能存储512MB。Hash(哈希)Redis hash 是一个键值(key=>value)对集合;是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。每个 hash 可以存储 232 -1 键值对(40多亿)。常用命令:hget、hset、hgetall等。应用场景:存储一些结构化的数据,比如用户的昵称、年龄、性别、积分等,存储一个用户信息对象数据。List(列表)Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。list类型经常会被用于消息队列的服务,以完成多程序之间的消息交换。常用命令:lpush、rpush、lpop、rpop、lrange等。列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。Set(集合)Redis的Set是string类型的无序集合。和列表一样,在执行插入和删除和判断是否存在某元素时,效率是很高的。集合最大的优势在于可以进行交集并集差集操作。Set可包含的最大元素数量是4294967295。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。应用场景:1、利用交集求共同好友。2、利用唯一性,可以统计访问网站的所有独立IP。3、好友推荐的时候根据tag求交集,大于某个threshold(临界值的)就可以推荐。常用命令:sadd、spop、smembers、sunion等。集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。zset(sorted set:有序集合)Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。sorted set是插入有序的,即自动排序。常用命令:zadd、zrange、zrem、zcard等。当你需要一个有序的并且不重复的集合列表时,那么可以选择sorted set数据结构。应用举例:(1)例如存储全班同学的成绩,其集合value可以是同学的学号,而score就可以是成绩。(2)排行榜应用,根据得分列出topN的用户等。更多redis相关技术知识,请访问Redis使用入门教程栏目学习!

Redis有哪几种数据类型


文章TAG:redis  数据  数据库  存储  redis数据库能存储哪些类型  
下一篇