Redis

key与value

  • key字符串类型
  • value 支持五种数据类型:
    • 字符串型 string
    • 字符串列表 lists
    • 字符串集合 sets
    • 有序字符串集合 sorted sets
    • 哈希类型 hashs

String

string是redis最基本的类型,最大能存储512MB数据,string类型是二进制安全的,即可以为任何数据,比如数字、图片、序列化对象等

  • 设置
    • 设置键值 set key value
      • 设置键值及过期时间,以秒为单位 setex key second value
        • 设置多个键值 mset key value [key value ...]
          • 获取key值,设置key值 getset key value
  • 获取
    • 根据键获取值,如果不存在此键则返回null GET key
      • 根据多个键获取多个值 MGET key [key ...]
  • 运算(要求:值是数字)
    • 将key对应的value加1 INCR key
      • 将key对应的value加整数 INCRBY key increment
        • 将key对应的value减1 DECR key
        • 将key对应的value减整数DECRBY key decrement
  • 其它
    • 追加值 APPEND key value
      • 获取值长度 STRLEN key

存储lists类型

​ 在Redis中,List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表 一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键并不存在,Redis将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库中删除。List中可以包含的最大元素数量是 4294967295。

  • 设置

    • 在头部插入数据 LPUSH key value [value ...]

      • 在尾部插入数据 RPUSH key value [value ...]
        • 在一个元素的前|后插入新元素 LINSERT key BEFORE|AFTER pivot value
    • 仅当参数中指定的key存在时,在指定的key所关联的list的头部插入value

      lpushx key value [value ...]

    • 仅当参数中指定的key存在时,在指定的key所关联的list的尾部插入value

      rpushx key value [value ...]

      • 设置指定索引的元素值,索引是基于0的下标.索引可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素 LSET key index value
  • 获取

    • 移除并且返回key对应的list的第一个元素 LPOP key

      • 移除并返回key对应的list 的最后一个元素 RPOP key
    • 返回存储在 key 的列表里指定范围内的元素,start 和 end 偏移量都是基于0的下标,偏移量也可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素

      RANGE key start stop

      • 将链表中的尾部元素弹出并添加到头部 rpoplpush resource destination
        • 返回列表里索引对应的元素 LINDEX key index
  • 其它

    • 裁剪列表,改为原集合的一个子集,start 和 end 偏移量都是基于0的下标,偏移量也可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素 LTRIM key start stop

    • 删除count个值为value的元素,如果count大于0,从头向尾遍历并删除count个值为value的元素,如果count小于0,则从尾向头遍历并删除。如果count等于0,则删除链表中所有等于value的元素

      lrem key count value

      • 返回存储在 key 里的list的长度 LLEN key

set

无序集合,元素为string类型,元素具有唯一性,不重复

  • 设置
    • 添加元素(如果key值已有则不会重复添加) SADD key member [member ...]
  • 获取
    • 返回key集合所有的元素 SMEMBERS key
      • 返回集合元素个数 SCARD key
      • 随机返回set中的一个成员 srandmember key
  • 其它
    • 求多个集合的交集 SINTER key1 key2
    • 将返回的交集存储在destination上 sinterstore destination key1 key2
      • 求某集合与其它集合的差集SDIFF key1 key2
        • 求多个集合的合集 SUNION key1 key2
    • 将返回的并集存储在destination上 sunionstore destination key1 key2
      • 判断元素是否在集合中 SISMEMBER key member
        • 删除set中指定的成员srem key member1、member2
      • 将key1、key2相差的成员存储在destinationsdiffstore destination key1 key2

Sorted-Sets

​ Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中。它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。然而需要额外指出的是,尽管Sorted-Sets中的成员必须是唯一的,但是分数(score) 却是可以重复的.

  • 将所有成员以及该成员的分数存放到sorted-set中 ZADD key score member [score member ...]

    • 返回指定范围内的元素 ZRANGE key start stop
      • 返回元素个数 ZCARD key
    • 返回有序集key中,score值在min和max之间的成员ZCOUNT key min max
      • 返回有序集key中,成员member的score值 ZSCORE key member
        • 设置指定成员的增加的分数 zincrby key increment member
  • 获取集合中脚标为start-end的成员,[withscores]参数表明返回的成员包含其分数

    zrange key start end [withscores]

    • 返回成员在集合中的位置 zrank key member
      • 移除集合中指定的成员,可以指定多个成员 zrem key member[member…]
        • 返回指定成员的分数 zscore key member
  • 返回分数在[min,max]的成员并按照分数从低到高排序。[withscores]:显示分数;[limit offset count]:offset,表明从脚标为offset的元素开始并返回count个成员

    zrangebyscore key min max [withscores][limit offset count]

Hash

hash用于存储对象,对象的格式为键值对,每一个Hash 可以存储4294967295个键值对

  • 设置
    • 设置单个属性 HSET key field value
      • 设置多个属性 HMSET key field value [field value ...]
  • 获取
    • 获取一个属性的值 HGET key field
      • 获取多个属性的值 HMGET key field [field ...]
        • 获取所有属性和值HGETALL key
        • 获取所有的属性HKEYS key
      • 返回包含属性的个数HLEN key
        • 获取所有值 HVALS key
  • 其它
    • 判断属性是否存在 HEXISTS key field
      • 删除属性及值 HDEL key field [field ...]
      • 设置key中filed的值增加incrementhincrby key field increment

通用操作

  • keys pattern 获取所有与pattern匹配的key,返回所有与该key匹配的keys。*表示任意一个或多个字符,?表示任意一个字符
  • delete key1 key2 删除指定的key
  • exists key 判断该key是否存在,1存在,0不存在
  • rename key newkey 为当前key重命名
  • expire key 设置过期时间
  • ttl key 获取该key所剩超时时间,没有设置超时时间,返回-1,-2表示超时不存在
  • type key 获取key的类型

你可能感兴趣的:(Redis)