Redis常用几种数据类型

野性酷女 2022-07-21 01:44 299阅读 0赞

#

Redis介绍:

REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。Redis提供了一些丰富的数据结构,包括 lists, sets, ordered sets 以及 hashes ,当然还有和Memcached一样的 strings结构.Redis当然还包括了对这些数据结构的丰富操作。

Redis数据结构类型及基础操作:

String类型:

最常用的一种数据类型,普通的key/ value 存储都可以归为此类. 可以实现目前 Memcached 的功能,并且效率更高。还可以享受Redis的定时持久化,操作日志及 Replication等功能。除了提供与 Memcached 一样的get、set、incr、decr 等操作外,Redis还提供了下面一些操作:

获取字符串长度

往字符串append内容

设置和获取字符串的某一段内容

设置及获取字符串的某一位(bit)

批量设置一系列字符串的内容

Center

List类型:

常用命令: lpush,rpush,lpop,rpop,lrange,BLPOP等。
应用场景: Redis list的应用场景非常多,也是Redis最重要的数据结构之一。
Lists的另一个应用就是消息队列,可以利用Lists的PUSH操作,将任务存在Lists中,然后工作线程再用POP操作将任务取出进行执行。

Center 1

set类型:

常用命令: sadd,spop,smembers,sunion 等。

应用场景: Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的。

Center 2

sorted sets类型:

常用命令: zadd,zrange,zrem,zcard等

使用场景: Redis sorted set的使用场景与set类似,区别是set不是自动有序的,而sorted set可以通过用户额外提供一个优先级(score)的参数来为成员排序,并且是插入有序的,即自动排序。
可以用Sorted Sets来做带权重的队列,比如普通消息的score为1,重要消息的score为2,然后工作线程可以选择按score的倒序来获取工作任务。让重要的任务优先执行。

Center 3

hash类型:

Redis hash 是一个string类型的field和value的映射表。它特别适合用于存储对象。同将对象的每个字段存成单个string类型,存储为hash类型会占用更少的内存,并且方便的存取整个对象。

Center 4

Center 5

Pub/Sub :

发布(Publish)与订阅(Subscribe),在Redis中,你可以设定对某一个key值进行消息发布及消息订阅; 当一个key值上进行了消息发布后,所有订阅它的客户端都会收到相应的消息。

这一功能最明显的用法就是用作实时消息系统,比如普通的即时聊天,群聊等功能。

transaction:

这里提供了基本命令打包执行的功能. 并且提供了一个watch的功能。你可以对一个key进行watch,再执行transaction,如果过程中value值发生任何改变,transaction会发现并拒绝执行.

发表评论

表情:
评论列表 (有 0 条评论,299人围观)

还没有评论,来说两句吧...

相关阅读