redis操作命令锦集

redis操作命令锦集

本章节给大家规整一下redis中常用的操作命令

redis中五种数据类型

    1. 字符串 String ----重点
    • 特点: 存储所有的字符和字符串
    • 应用场景: 做缓存使用
    1. 哈希 hash
    • 特点: 相当于java中hashMap集合
    • 应用场景: 可以存储javaBean对象, 此种使用场景不多,可被String替代
    1. list集合
    • 特点: 相当于java中linkList, 是一个链表的结构
    • 应用场景: 做任务队列,
      • 在java中客户端提供了线程安全获取集合数据的方式
    1. set 集合
    • 特点: 唯一, 无序
    • 应用场景: 集合运算
      • 例如去重复的操作
    1. 有序set集合: sorted set
    • 特点:唯一, 有序
    • 应用场景: 一般用来做排行榜

redis中String类型相关命令

  • 赋值: set key value

    • 设定key持有指定的字符串value,如果该key存在则进行覆盖操作。总是返回”OK”
  • 取值: get key

    • 获取key的value。如果与该key关联的value不是String类型,redis将返回错误信息,因为get命令只能用于获取String value;如果该key不存在,返回(nil)
  • 删除: del key

    • 删除指定的key
  • 数值增减:

    • 增减值: incr key
      • 将指定的key的value原子性的递增1.如果该key不存在,其初始值为0,在incr之后其值为1。如果value的值不能转成整型,如hello,该操作将执行失败并返回相应的错误信息。
    • 减少值: decr key
      • 将指定的key的value原子性的递减1.如果该key不存在,其初始值为0,在incr之后其值为-1。如果value的值不能转成整型,如hello,该操作将执行失败并返回相应的错误信息
    • 增加固定的值: incrby key increment
      • 将指定的key的value原子性增加increment,如果该key不存在,器初始值为0,在incrby之后,该值为increment。如果该值不能转成整型,如hello则失败并返回错误信息
    • 减少固定的值: decrby key decrement
      • 将指定的key的value原子性减少decrement,如果该key不存在,器初始值为0,在decrby之后,该值为decrement。如果该值不能转成整型,如hello则失败并返回错误信息
  • 拼接value值: append key value

    • 拼凑字符串。如果该key存在,则在原有的value后追加该值;如果该key不存在,则重新创建一个key|value
  • 为key中内容设置有效时长:

    • 为新创建的key设置时长
      • setex key seconds value
    • 为已有的key设置有效时长
      • expire key seconds
  • 判断key是否存在: exists key

    • 返回1 表示存在, 返回0 表示不存在
  • 获取key还剩余有效时长: ttl key

    • 特殊: 返回-1 表示永久有效 返回-2 表示不存在
  • keys * : 用来查看所有的key

redis中hash类型的相关命令

  • 存值: hset key field value
    • key为一个字符串, value类似于map,同样有一个field和value
  • 取值:
    • 获取指定key的field的值: hget key field
    • 获取指定key的多个field值: hmget key fields
    • 获取指定key中的所有的field与value的值: hgetall key
    • 获取指定key中map的所有的field: hkeys key
    • 获取指定key中map的所有的value: hvals key
  • 删除:
    • hdel key field [field … ] :可以删除一个或多个字段,返回值是被删除的字段个数
    • del key :删除整个内容
  • 增加数字:
    • hincrby key field number:为某个key的某个属性增加值
  • 判断某个key中的filed是否存在: hexists key field
    • 返回 0表示没有, 返回1 表示有
  • 获取key中所包含的field的数量: hlen key

redis中list集合类型的相关命令

redis的中的list集合类似于java中的linkedlist集合,此集合也是队列的一种, 支持向两端操作

  • 添加:
    • 从左侧添加: lpush key values[value1 value2…]
      • 在指定的key所关联的list的头部插入所有的values,如果该key不存在,该命令在插入的之前创建一个与该key关联的空链表,之后再向该链表的头部插入数据。插入成功,返回元素的个数。
    • 从右侧添加: rpush key values[value1、value2…]
      • 在该list的尾部添加元素
  • 查看列表 : lrange key start end
    • 获取链表中从start到end的元素的值,start、end从0开始计数;end可为负数,若为-1则表示链表尾部的元素,-2则表示倒数第二个,依次类推…
  • 删除(弹出):
    • 从左侧弹出:lpop key
      • 返回并弹出指定的key关联的链表中的第一个元素,即头部元素。如果该key不存在,返回nil;若key存在,则返回链表的头部元素
    • 从右侧弹出: rpop key
      • 从尾部弹出元素
  • 获取列表中元素的个数: llen key
    • 返回指定的key关联的链表中的元素的数量
  • 向指定的key插入数据, 仅在key存在时插入, 不存在不插入
    • 从左侧:lpushx key value
    • 从右侧: rpushx key value
  • lrem key count value:
    • 删除count个值为value的元素,如果count大于0,从头向尾遍历并删除count个值为value的元素,如果count小于0,则从尾向头遍历并删除。如果count等于0,则删除链表中所有等于value的元素
  • lset key index value:
    • 设置链表中的index的脚标的元素值,0代表链表的头元素,-1代表链表的尾元素。操作链表的脚标不存在则抛异常。
  • linsert key before|after pivot value
    • 在pivot元素前或者后插入value这个元素。
  • rpoplpush resource destination
    • 将链表中的尾部元素弹出并添加到头部。[循环操作]

redis中的set集合的相关命令操作

  • 添加: sadd key values[value1、value2…]
    • 向set中添加数据,如果该key的值已有则不会重复添加
  • 删除: srem key members[member1、member2…]
    • 删除set中指定的成员
  • 获取所有的元素: smembers key
    • 获取set中所有的成员
  • 判断元素是否存在: sismember key member
    • 判断参数中指定的成员是否在该set中,1表示存在,0表示不存在或者该key本身就不存在。(无论集合中有多少元素都可以极速的返回结果)
  • 集合的差集运算: sdiff key1 key2…
    • 返回key1与key2中相差的成员,而且与key的顺序有关。那个在前, 返回那个key对应的差集
  • 集合的交集运算:sinter key1 key2 key3…
    • 返回交集, 两个key都有的
  • 集合的并集运算:sunion key1 key2 key3…
    • 返回并集
  • 获取set中成员的数量:
    • scard key
  • 随机返回set中的一个成员:
    • srandmember key
  • 将key1、key2相差的成员存储在destination上:
    • sdiffstore destination key1 key2…
  • 将返回的交集存储在destination上:
    • sinterstore destination key[key…]
  • 将返回的并集存储在destination上:
    • sunionstore destination key[key…]

redis中的sortedset集合的相关操作:

  • 添加数据: zadd key score member

    • 将所有成员以及该成员的分数存放到sorted-set中。如果该元素已经存在则会用新的分数替换原有的分数。返回值是新加入到集合中的元素个数,不包含之前已经存在的元素
  • 获得元素:

    • zscore key member: 返回指定元素的值
    • zcard key: 获取集合中的成员数量
  • 删除元素:zrem key member[member…]

    • 移除集合中指定的成员,可以指定多个成员。
  • zrank key member:

    • 返回成员在集合中的排名。(从小到大)
  • zrevrank key member

    • 返回成员在集合中的排名。(从大到小)
  • zincrby key increment member:

    • 设置指定成员的增加的分数。返回值是更改后的分数 …
  • 范围查询:

    • zrange key start end [withscores]: 获取集合中脚标为start-end的成员,[withscores]参数表明返回的成员包含其分数
    • zrevrange key start stop [withscores]: 按照元素分数从大到小的顺序返回索引从start到stop之间的所有元素(包含两端的元素)
  • zremrangebyrank key start stop: 按照排名范围删除元素

  • zremrangebyscore key min max: 按照分数范围删除元素

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

    • 返回分数在[min,max]的成员并按照分数从低到高排序。[withscores]:显示分数;[limit offset count]:offset,表明从脚标为offset的元素开始并返回count个成员a
  • zcount key min max:

    • 获取分数在[min,max]之间的成员
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值