Redis常用数据类型的案例与总结

Redis数据类型

  1. 常见数据类型如下:(参考Http://redisdoc.com/)

    1. String/字符串
    2. Hash/哈希
    3. List/列表
    4. Set/集合
    5. Zset/sorted set有序集合
  2. KEY的操作:(小写key代表键名,小写db代表数据库角标,小写second代表秒数)

    1. KEYS *:查看当前数据库的所有键值,若没有返回空(empty list or set)
    2. EXISTS key:存在key的值返回1,不存在返回0
    3. MOVE key db:移动key到其他数据库(db),key不存在返回0,数据库不存在报错(error) ERR index out of range
    4. EXPIRE key second:给制定key设置过期时间,key不存在则失败返回0
    5. TTL key:查看制定key的剩余时间(-2~正无穷大),永久返回-1,已过期返回-2
  3. String/字符串的操作:单值单value

    1. SET key xxx/GET key/DEL key/APPEND key xxx/STRLEN key:设值(可覆盖),取值(不存在返回nil),删除(成功返回1失败返回0),追加(key存在返回其长度,不存在则相当于新增),求长度(不存在返回0)
    2. INCR key/DECR key/INCRBY key n/DECRBY key n:给指定key+1/-1/+n/-n(若不存在则新增key,且值为1或n)
    3. GETRANGE key m n/SETRANGE key n xxx:取指定key的[m,n]的值,从0开始,-1代表最后一位。-2代表倒数第二位/将指定key的值从第n为开始设置为xxx,会覆盖回追加
    4. SETEX key second xxx/ SETNX key xxx:(setex:set with expire)设置带过期时间的值(可覆盖可新增)/(setnx:set if not exist)先判断key是否存在,不存在时设值,存在失败返回0
    5. MSET key1 xxx key2 xxx key3 xxx …/MGET key1 key2 key 3 …/MSETNX key1 xxx key2 xxx key3 xxx… :设置多个key的值/取得多个key的值/设置多个key的值(全部不存在时才设置,否则返回0)
  4. GETSET key xxx:先取值再设置值,若不不存在key则返回nil后设置值

  5. List/列表:单值多value

    1. LPUSH key v1 v2 v3 …/rpush key v1 v2 v3 …/lrange key m n:从左往右添加/从右往左添加/从左往右取值,[m,n]
    2. LPOP key/RPOP key :从左边出一个值/从右边出一个值
    3. LINDEX key index:(lindex key index)通过索引获取列表中角标为index的元素
    4. LLEN key:获取指定key的长度
    5. LREM key value :再key中删N个值相同的value,不够则全删,返回删除的个数
    6. LTRIM key m n:截取指定范围[m,n]的值后再赋值给这个key,越界则截取[m,n]覆盖的值
    7. RPOPLPUSH key1 key2:移除key1列表的最后一个元素,并将该元素添加到另一个列表key2(不存在则新建),并返回
    8. LSET key index xxx:将xxx插如key中的index位置,若index越界则报错(error) ERR index out of range
    9. LINSERT key before/after xxx1 xxx2:将xxx2插入到xxx1的前面/后面,若xxx1不存在则插入失败返回-1
    10. 总结:List是一个字符串链表,left、right都可以插入添加;如果键不存在,创建新的链表;如果键已存在,新增内容;如果值全移除,对应的键也就消失了。链表的操作无论是头和尾效率都极高,但是对中间元素进行操作时,效率就很低了。
  6. Hash/哈希KV模式不变,但V是一个键值对

    1. HSET hashname key xxx/HGET hashname key/HMSET hashname key1 xx1 key2 x2 …/HMGET hashname key1 key2 …/HGETALL hashname/HDEL hashname

      127.0.0.1:6379> HSET h1 k1 v1
      (integer) 1
      127.0.0.1:6379> HGET h1 k1
      "v1"
      127.0.0.1:6379> HMSET h1 k2 v2 k3 v3 k4 v4
      OK
      127.0.0.1:6379> HMGET h1 k1 k2 k3 k4
      1) "v1"
      2) "v2"
      3) "v3"
      4) "v4"
      127.0.0.1:6379> HGETALL h1
      1) "k1"
      2) "v1"
      3) "k2"
      4) "v2"
      5) "k3"
      6) "v3"
      7) "k4"
      8) "v4"
      127.0.0.1:6379> HDEL h1 k4
      (integer) 1
      127.0.0.1:6379> HGETALL h1
      1) "k1"
      2) "v1"
      3) "k2"
      4) "v2"
      5) "k3"
      6) "v3"
      127.0.0.1:6379> 
      
    2. HLEN hashname:

      127.0.0.1:6379> HGETALL h1
      1) "k1"
      2) "v1"
      3) "k2"
      4) "v2"
      5) "k3"
      6) "v3"
      127.0.0.1:6379> HLEN h1
      (integer) 3
      127.0.0.1:6379> 
      
    3. HEXISTS hashname key:

    127.0.0.1:6379> HEXISTS h1 k1
    (integer) 1
    127.0.0.1:6379> HEXISTS h1 k5
    (integer) 0
    127.0.0.1:6379> HEXISTS h2 k5
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值