现在的位置: 首页 > 综合 > 正文

Redis数据类型学习

2012年10月25日 ⁄ 综合 ⁄ 共 4925字 ⁄ 字号 评论关闭

Redis是一个key-value的内存数据库,value提供了String,List,Set,Sort Set,hash 5中数据结构。

命令和操作方法总结:自己一个个写的,真麻烦啊,,,

一 Keys上的操作

1) DEL key [key...]
    删除多个key,不存在的key,则忽略
    返回实际删除了的key的个数

2) EXISTS key
    返回1和0表示key是否存在

3) EXPIRE key seconds
    设置key的存活时间

4) EXPIREAT key timestamp
    UNIX timestamp(seconds since January 1, 1970)来设置存活期

5) KEYS pattern
    返回match pattern的keys的列表

6) MOVE key db
    在当前数据库中将key移动到指定的db中
    如果key在当前db中不存在或者指定的db中已有这个key,就不移动
    返回1或者0表示是否moved

7) OBJECT REFCOUNT <key>
    返回关联到key上的引用的个数
    OBJECT ENCODING <key>
    返回key在数据库内部的压缩编码方式
    OBJECT IDLETIME <key>
    返回key多久没有被读写
   在2.2.3版本后才可使用,目前装的是2.0.2版本,不支持

8) PERSIST key
    移除key上的时间限制属性,使其永久存在
    版本2.1.2后有效

9) RANDOMKEY
    从数据库随机的返回一个key

10) RENAME key newkey
    重新命名一个key,其他不变

11) RENAMENX key newkey
    重新命名一个key,如果newkey已经存在时,命令失败

12)SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination]
    各种排序方式

13) TTL key
    返回一个key还能在数据库中存活多久(seconds)
    如果key不存在或者没有时间限制,返回-1
    expire mykey可以设置一个key的存活时间

14) TYPE key
    返回key的类型(string,list,set...)

二 Strings

1) APPEND key value
    如果key不存在,创建一个新的key
    如果key已经存在,在value后apend,改变了value的值

2) DECR key
    key减1,对整型适用(或者以整型代表的字符串)
    对其他类型,返回错误

3) DECRBY key decrement
    将key减少指定的这么多
    如果key不存在,从零开始减少

4) GET key
    不解释

5) GETRANGE key start end
    返回substring,包含开始和结束索引
    0代表第一个索引,-1最后一个索引

6) GETSET key value
    对已经存在的key,设置其新的value,并返回老的value
    如果key不是string类型,返回错误

7) INCR key
    增加,同上

8) INCRBY key increment
    同上,不解释

9) MGET key [key ...]
    返回多个值

10) MSET key value [key value ...]
    同时设置多个key-value的值

11) MSETNX key value [key value ...]
    当有一个key已经存在时,整条命令都不执行

12) SET key value
    不解释

13) SETEX key seconds value
    设置一个key并为它设置时间
    等同于下列命令:
    SET mykey value
    EXPIRE mykey seconds

14) SETNX key value
    SET if Not eXists,当key不存在时设置一个新的key
    否则,什么也不做

15) SETRANGE key offset value
    从已存在key的offeset索引处用value代替以前的值
    版本2.1.8后有效

16) STRLEN key
    不解释

三 Hashes

1) HDEL key field [field ...]
    删除hash表(key)中的多个域
    对不存在的域忽略,返回实际删除的域的个数

2) HEXISTS key field
    hash表(key)中是否存在域field

3) HGET key field
    从hash表中得到域field的值

4) HGETALL key
    返回hash表中的所有域和它对应的值

5) HINCRBY key field increment
    将hash表中指定域增加一个值

6) HKEYS key
    返回所有的域

7) HLEN key
    返回hash表的长度

8) HMGET key field [field ...]
    返回hash表多个域的值

9) HMSET key field value [field value ...]
    同上

10) HSET key field value
    设置一对值

11) HSETNX key field value
    仅当域不存在时设置

12) HVALS key
    返回所有的values

四 Lists

1) BLPOP key [key ...] timeout
    Remove and get the first element in a list, or block until one is available
    Lpop的blocking版本,在timeout时间时间内,pop第一个非空的key中的第一个元素(元素连同它所在的key一起返回)
    可以允许key中有空值,它会去找第一个非空的key
    如果都空,blocking发生作用,它会等待直到有一个key经过了lpush或rpush非空

2) BRPOP key [key ...] timeout     
    Remove and get the last element in a list, or block until one is available
    最后一个。同上

3) BRPOPLPUSH source destination timeout
    Pop a value from a list, push it to another list and return it; or block until one is available

4) LINDEX key index
    用索引获取值(后进列表的索引在前)

5) LINSERT key BEFORE|AFTER pivot value
    将value插入在pivot之前或者之后

6) LLEN key
    不解释

7) LPOP key
    pop并返回第一个值(索引0的值)

8) LPUSH key value [value ...]
    不解释

9) LPUSHX key value
    同上一条的区别是,只有当key已经存在并非空时,才push一个value

10) LRANGE key start stop
    返回索引从start到stop的值

11) LREM key count value
    删除|count|个value,count为正表示从左往右数,为负表示从右往左数
    0表示删除全部值为value的项
    返回值是实际删除的个数

12) LSET key index value
    要设置的index范围必须已存在

13) LTRIM key start stop
    trim一个list,保留start到stop之间的

14) RPOP key
    pop最后一个key

15) RPOPLPUSH source destination
    pop最后一个元素,append到另一个list里,并返回这个值

16) RPUSH key value [value ...]
    加到列表最后

17) RPUSHX key value
    仅当列表已经非空时,加到列表最后

五 Sets

1) SADD key member
    如果member已存在,命令失效. 注意是集合,元素不能重复

2) SCARD key
    返回集合中元素的个数

3) SDIFF key [key ...]
    差集,在第一个集合中存在,但在其他集合中都不存在的元素

4) SDIFFSTORE destination key [key ...]
    同上,只是将返回的集合存在集合 destination中

5) SINTER key [key ...]
    交集

6) SINTERSTORE destination key [key ...]
    同上

7) SISMEMBER key member
    是否属于一个集合

8) SMEMBERS key
    返回集合所有元素

9) SMOVE source destination member
    从一个set里将元素移动到另一个set里
    

10) SPOP key
    pop一个随进的元素,因为集合是无序的

11) SRANDMEMBER key
    返回一个随机的元素

12) SREM key member [member ...]
    移除一个或多个元素
    不在的元素忽略

13) SUNION key [key ...]
    并集

14) SUNIONSTORE destination key [key ...]
    同上

六 Sorted Sets

1) ZADD key score member [score] [member]
    增加一个或多个元素,如果该元素已经存在,更新它的socre值
    虽然有序集合有序,但它也是集合,不能重复元素,添加重复元素只会
    更新原有元素的score值

2) ZCARD key
    元素个数

3) ZCOUNT key min max
    SCORE值在min和max之间的元素的个数

4) ZINCRBY key increment member
    给有序集合key里面的元素member增加increment
    若key不存在,创建一个key
    若member不存在,创建一个member,从0开始增加
    仅当key存在但类型不是有序集合时,出错

5) ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
    
    nubberkeys指定要求交集的集合的个数
    将nubberkeys个集合求交集,结果放在集合destination中
    (如果des已存在,覆盖它)
    
    参数[WEIGHTS weight [weight ...]]
    指定求交集集合的权重,在计算新的score时使用

    参数[AGGREGATE SUM|MIN|MAX]
    当两个集合中有同一个名字的元素,但score不同时,指定取哪一个score
    的元素

6) ZRANGE key start stop [WITHSCORES]

    索引start到stop处的元素

7) ZRANGEBYSCORE key min max [WITHSCORES]
    score在min到max之间的元素

8) ZRANK key member
    返回menber的索引(score从低到高升序排列)

9) ZREM key member [member ...]
    不解释

10) ZREMRANGEBYRANK key start stop
    不解释

11) ZREMRANGEBYSCORE key min max
    不解释

12) ZREVRANGE key start stop [WITHSCORES]
    返回索引之间的元素

13) ZREVRANGEBYSCORE key max min [WITHSCORES]
    同上,返回score区间内的

14) ZREVRANK key member
    同8),score降序

15) ZSCORE key member
    不解释

16) ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
    
    求并集,其他同5)求交集

抱歉!评论已关闭.