参考:http://doc.redisfans.com/

redis的5种数据类型

  • string 字符串(可以为整形、浮点型和字符串,统称为元素)
  • list 列表(实现队列,元素不唯一,先入先出原则)
  • set 集合(各不相同的元素)
  • hash hash散列值(hash的key必须是唯一的)
  • sort set 有序集合

    String常用命令

  • GETSET key value

    • 将给定key的值设为value,并返回key的旧值(old value)。
    • 当key存在但不是字符串类型时,返回一个错误。
  • GETBIT key offset
    • 对key所储存的字符串值,获取指定偏移量上的位(bit)。
  • INCR key
    • 将key中储存的数字值增一。
    • 如果key不存在,那么key的值会先被初始化为0,然后再执行INCR操作。
    • 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
  • GETRANGE key start end
    • 返回key中字符串值的子字符串,字符串的截取范围由start和end两个偏移量决定(包括start和end在内)。
    • 负数偏移量表示从字符串最后开始计数,-1表示最后一个字符,-2表示倒数第二个,以此类推。
  • SETNX key value
    • 将key的值设为value,当且仅当key不存在。
    • 若给定的key已经存在,则SETNX不做任何动作。
    • SETNX是『SET if Not eXists』(如果不存在,则 SET)的简写。
      • 设置成功,返回1。
      • 设置失败,返回0。
  • MGET key [key …]
    • 返回所有(一个或多个)给定key的值。
  • MSET key value [key value …]
    • 同时设置一个或多个key-value对。
  • SETEX key seconds value
    • 将值value关联到key,并将key的生存时间设为seconds(以秒为单位)。
  • SETBIT key offset value
    • 对key所储存的字符串值,设置或清除指定偏移量上的位(bit)。
    • 位的设置或清除取决于value参数,可以是0也可以是1。
  • BITCOUNT key [start] [end]
    • 计算给定字符串中,被设置为1的比特位的数量。
    • 使用 bitmap 实现用户上线次数统计 ```shell redis> BITCOUNT bits (integer) 0

redis> SETBIT bits 0 1 # 0001 (integer) 0

redis> BITCOUNT bits (integer) 1

redis> SETBIT bits 3 1 # 1001 (integer) 0

redis> BITCOUNT bits (integer) 2 ```

list常用命令

  • LPUSH key value [value …]
    • 将一个或多个值value插入到列表key的表头
  • LPUSHX key value
    • 将值value插入到列表key的表头,当且仅当key存在并且是一个列表。
    • LPUSH命令相反,当key不存在时,LPUSHX命令什么也不做。
  • LRANGE key start stop
    • 返回列表key中指定区间内的元素,区间以偏移量start和stop指定。
    • 下标(index)参数start和stop都以0为底,也就是说,以0表示列表的第一个元素,以1表示列表的第二个元素,以此类推。
    • 你也可以使用负数下标,以-1表示列表的最后一个元素,-2表示列表的倒数第二个元素,以此类推。
  • LREM key count value
    • 根据参数count的值,移除列表中与参数value相等的元素。
    • count的值可以是以下几种:
      • count>0: 从表头开始向表尾搜索,移除与value相等的元素,数量为count。
      • count<0: 从表尾开始向表头搜索,移除与value相等的元素,数量为count的绝对值。
      • count=0: 移除表中所有与value相等的值。
  • LSET key index value
    • 将列表key下标为index的元素的值设置为value
    • 当index参数超出范围,或对一个空列表(key不存在)进行LSET时,返回一个错误。
  • LTRIM key start stop
    • 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
    • 举个例子,执行命令LTRIMlist02,表示只保留列表list的前三个元素,其余元素全部删除。
  • RPOP key
    • 移除并返回列表key的尾元素。
  • RPOPLPUSH source destination
    • 命令RPOPLPUSH在一个原子时间内,执行以下两个动作:
      • 将列表source中的最后一个元素(尾元素)弹出,并返回给客户端。
      • 将source弹出的元素插入到列表destination,作为destination列表的的头元素。
  • LINSERT key BEFORE|AFTER pivot value
    • 将值value插入到列表key当中,位于值pivot之前或之后。
      • 当pivot不存在于列表key时,不执行任何操作
      • 当key不存在时,key被视为空列表,不执行任何操作。
      • 如果key不是列表类型,返回一个错误。

set常用命令

sadd/srem/spop/sdiff/sdiffstore/smembers

语法:sadd 集合 元素
作用:向指定名称集合中添加元素
REDIS基本操作 - 图1

语法:smembers 集合
作用:查看指定集合的元素
REDIS基本操作 - 图2

语法:scard 集合
作用:查看集合中的元素个数
REDIS基本操作 - 图3

语法:sismember 集合 元素
作用:判断一个元素是否为集合中的元素(返回1表示是,0表示不是)
REDIS基本操作 - 图4

语法:srandmember 集合
作用:随机返回一个集合中的元素
REDIS基本操作 - 图5

语法:srem 集合 元素
作用:删除集合中指定的元素
REDIS基本操作 - 图6

语法:spop 集合
作用:随机返回删除的元素
REDIS基本操作 - 图7

语法: sdiff 集合1 集合2
作用:返回两个集合的不同元素
REDIS基本操作 - 图8

语法:sdiffstore 集合3 集合1 集合2
作用:将集合1和集合2的不同元素添加到集合3
REDIS基本操作 - 图9

sinter/sinterstore/sunion/sunionstore
sinter以及sinterstore的用法和sdif、sdiffstore列类似,只不过它是取交集
sunion以及sunionstore的用法和sdif、sdiffstore列类似,只不过它是取并集

zset常用命令

语法:zadd 集合 索引 元素
作用:向指定的有序集合中的索引位置添加元素
REDIS基本操作 - 图10

语法:zrange 集合 索引开始位置 -1
作用:查询指定索引位置后的所有元素
REDIS基本操作 - 图11