Redis常用几种数据类型

来源:互联网 发布:模糊c均值聚类算法 编辑:程序博客网 时间:2024/04/26 11:18


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) 

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



List类型:

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



set类型:

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

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



sorted sets类型:

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

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



hash类型:

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



Pub/Sub :

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

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


transaction:

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

0 0
原创粉丝点击