字符串string,列表list,集合set,哈希hash,有序集合zset
redis通常value均为string类型,如列表中的每个元素为string
字符串类型操作
单key-单value
set key value //设置字符串键值,key存在则覆盖
get key //获取字符串值
append key newValue //在原有值后追加新字符串值,相当于拼接,返回追加之后字符串的长度。若key不存在则新创建一个key,值为newValue
strlen key //查看字符串值的长度
incr key //前提值可进行运算,即为字符串数值。将字符串数值进行加1运算,返回加1后的数值。若key不存在,新建一个key,值初始化为0,再进行incr运算。
decr key //类似incr,做减1运算。
incrby key number //做加number运算。
decrby key number //做减number运算。
列表类型操作
单key-多有序value
多个value有顺序,左侧为表头,右侧为表尾;
value下标从表头由0开始类似数组;或者下标从表尾计算,表尾下标为-1,往前依次减1。
value在列表中的下标由放入的顺序决定。
lpush key v1 v2 v3 ... //将一个或多个value依次放入列表表头
lrange key startIndex endIndex //获取列表中指定下标区间的元素
lrange key 0 -1 //返回从0到-1下标区间元素,也即所有元素
lindex key index //获取指定下标的元素
rpush key v1 v2 v3 ... //将一个或多个value依次放入列表表尾
lpop key //移除并返回表头元素
rpop key //移除并返回表尾元素
llen key //获取列表长度
lrem key count value //count大于0时从列表左侧移除count个值为value的值,count大于0时从右侧移除,count等于0时移除所有值为value的值
集合类型操作
单key-多无序value
一个key对应多个无顺序的value,并且value不能重复,无下标。
sadd key v1 v2 v3 ... //将一个或多个value添加到集合中,重复的值无法被加入,返回成功添加进集合的元素个数
smembers key //获取集合中所有值
sismember key value //判断值是否存在于集合中,存在返回1,否则返回0
scard key //获取集合的长度
srem key v1 v2 ... //移除集合中一个或者多个元素,不存在则忽略,返回成功移除的元素个数
srandmember key //随机获取集合中一个元素
srandmember key count //随机获取count个元素,count大于0则不重复,count小于0则可能重复
spop key count //随机从集合中移除count个元素
smove key1 key2 value //将集合key1中的值移动到集合key2中
sdiff key1 key2 key3 ... //获取key1中有,但其它集合中没有的元素
sinter key1 key2 key3 ... //获取所有集合中都有的元素,即求交集
sunion key1 key2 key3 ... //获取所以集合中所有不重复元素的集合,即求并集
哈希类型操作
单key-多个哈希键值,哈希键值为string类型的键值映射表
适合存储对象
hset key field1 value1 field2 value2 ... //将一个或多个哈希键值对加入哈希表中,重复会覆盖
hsetnx key field value //添加一对哈希键值,若field存在则放弃添加
hset student name zhangsan id 001
hget key field //获取哈希表中指定field键对应的值
hmset key field1 value1 field2 value2 ... //批量添加多个哈希键值,相当于hset
hmget key field1 field2 ... //批量获取多个对应键的哈希值
hgetall key //一次获取所有哈希键值
hdel key field1 field2 ... //删除一个或多个field
hlen key //获取哈希表的长度
hexist key field //判断哈希表中某个field是否存在,存在返回1,否则返回0
hkeys key //获取哈希表中所有field列表
hvals key //获取哈希表中所有值列表
hincrby key field number //对哈希表中某个键对应的值进行加number操作
有序集合操作
zset和set一样都为string类型的集合,不能重复,zset每个元素对应一个分数,分数可以为整数或者浮点数,根据分数进行自动排序,分数可以重复,元素无法重复。
有序集合中元素拥有下标,下标排列与列表相同。
zadd key score1 member1 score2 member2 ... //将一个或者多个member及其score加入有序集合中,已存在的会被覆盖
zrange key startIndex endIndex [withscores] //获取zset中指定下标区间(闭区间)的元素,[]表示可选,withscores表示同时获取对应分数
zrangebyscore key minScore maxScore [withscores] //获取zset中指定分数区间的元素,闭区间。
zrem key member1 member2 //移除zset中一个或多个元素
zcard key //获取zset中所有元素的个数
zcount key minScore maxScore //获取zset中指定分数区间的元素个数
zrank key member //获取zset中指定member的分数排名,从小到大排列,排名从0开始
zrevrenk key member //获取zset中指定member的分数排名,从大到小排列,排名从0开始
zscore key member //获取zset中指定member的分数