浅谈Redis存储数据类型及存取值方法
作者:心寒丶
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)
String存取值:
是 redis 最基本的类型 一个 key 对应一个 value。value其实不仅是String,也可以是数字。string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。 使用场景:常规key-value缓存应用。常规计数: 微博数, 粉丝数。
存值:SET key value 取值:GET key
hash存取值:
是一个键值(key => value)对集合。Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象
存值 HMSET key field value [field value ...] 取值 HGET key field 或者 SCAN cursor [MATCH pattern] [COUNT count]
或者 HGETALL key 获取全部
list存取值:
列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)常用命令:lpush(添加左边元素),rpush,lpop(移除左边第一个元素),rpop,lrange(获取列表片段,LRANGE key start stop)等
存值:LPUSH key value [value ...] 取值:LRANGE key start stop
set存取值:
是string类型的无序集合。集合是通过hashtable实现的,概念和数学中个的集合基本类似,可以交集,并集,差集等等,set中的元素是没有顺序的。set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在,一个set集合内的重要接口,这个也是list所不能提供的
存值:sadd key member [member ...] 取值: SMEMBERS key 或者 SSCAN key cursor [MATCH pattern] [COUNT count]
zset存取值:
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。当你需要一个有序的并且不重复的集合列表,那么可以选择sorted set数据结构,zset的成员是唯一的,但分数(score)却可以重复。
存值:zadd key [NX|XX] [CH] [INCR] score member [score member ...] 取值: ZRANGE key start stop [WITHSCORES]
或者 ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
如果元素在集合中存在则更新对应score java从原来第一个变为第五个
如果score已经存在,则插入新的元素为对应score redis插入原有的有序排序中
结合辅助软件可以看得更加清晰
、
到此这篇关于浅谈Redis存储数据类型及存取值方法的文章就介绍到这了,更多相关Redis存储数据类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!