欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

redis常用数据类型操作命令集锦

程序员文章站 2023-01-13 21:35:20
redis操作命令集锦 redis中五种数据类型 1) 字符串 String 特点: 存储所有的字符和字符串 应用场景: 做缓存使用 2) 哈希 hash 特点: 相当于java中hashMap集合 应用场景: 可以存储javaBean对象, 此种使用场景不多,可被String替代 3) list ......

redis操作命令集锦

redis中五种数据类型

  • 1) 字符串 String
    特点: 存储所有的字符和字符串
    应用场景: 做缓存使用
  • 2) 哈希 hash
    特点: 相当于java中hashMap集合
    应用场景: 可以存储javaBean对象, 此种使用场景不多,可被String替代
  • 3) list 集合
    特点: 相当于java中linkList, 是一个链表的结构
    应用场景: 做任务队列
    • 在java中客户端提供了线程安全获取集合数据的方式
  • 4) set 集合
    特点: 唯一, 无序
    应用场景: 集合运算
    例如去重复的操作
  • 5) 有序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 ...]
    删除指定的key,返回“(integer) n”,n表示成功删除的个数
  • 数值增减:
    增加值: incr key
    将指定的key的value原子性的递增1.如果该key不存在,其初始值为0。如果value的值不能转成整型,如hello,该操作将执行失败并返回相应的错误信息。
    减少值: decr key
    将指定的key的value原子性的递减1.如果该key不存在,其初始值为0。如果value的值不能转成整型,如hello,该操作将执行失败并返回相应的错误信息
  • 增加指定的值: incrby key increment
    将指定的key的value原子性增加increment,如果该key不存在,初始值为0。如果该值不能转成整型,如hello,则失败并返回错误信息
  • 减少指定的值: decrby key decrement
    将指定的key的value原子性减少decrement,如果该key不存在,初始值为0。如果该值不能转成整型,如hello,则失败并返回错误信息
  • 拼接value值: append key value
    拼接字符串。如果该key存在,则在原有的value后追加该值;如果该key不存在,则重新创建一个key将值设为value,返回“(integer) n”,n表示拼接后字符串长度

redis中hash类型的相关命令

  • 赋值:
    设置指定key的field的值:hset key field value,key为一个字符串,value类似于map,同样有一个field和value
    设置指定key的多个field的值:hmset key field value [field value ...]
  • 取值:
    获取指定key的field的值: hget key field
    获取指定key的多个field值: hmget key field [field ...]
    获取指定key中的所有的field的值: hgetall key
  • 删除:
    hdel key field [field …] :可以删除一个或多个字段,返回“(integer) n”,n表示被成功删除的字段个数
    del key :删除整个内容
  • 增加数字:
    hincrby key field increment :为某个key的某个integer属性增加值
  • 判断某个key中的filed是否存在: hexists key field
    返回0表示没有, 返回1表示有
  • 获取key中所包含的field的数量: hlen key
  • 获取所有的key: hkeys key
    注意这里指的获取所有的map中的key
  • 获取所有的value: hvals key
    注意这里指的获取所有的map中的value

redis中list集合的相关命令

redis的中的list集合类似于java中的双端队列, 支持向两端操作

  • 添加:
    从左侧添加: lpush key value [value ...]
    在指定的key所关联的list的头部插入所有的values,如果该key不存在,该命令在插入的之前创建一个与该key关联的空链表,之后再向该链表的头部插入数据。插入成功,返回元素的个数。
    从右侧添加: rpush key value [value ...]
    在该list的尾部添加元素
  • 查看列表 : lrange key start end
    获取链表中从start到end的元素的值,start、end从0开始计数;也可为负数,若为-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代表链表的尾元素。index不存在则抛异常。
  • linsert key before|after pivot value
    在第一个pivot元素前或者后插入value这个元素。
  • rpoplpush resource destination
    将链表中的尾部元素弹出并添加到头部。[循环操作]

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

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

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

  • 添加数据: zadd key score member [score member ...]
    将所有成员以及该成员的分数存放到sorted-set中。如果该元素已经存在则会用新的分数替换原有的分数。返回值是新加入到集合中的元素个数,不包含之前已经存在的元素
  • 获得元素:
    zscore key member: 返回指定元素的值
    zcard key: 获取集合中的成员数量
  • 删除元素:zrem key member [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
  • zincrby key increment member:
    设置指定成员的增加的分数。返回值是更改后的分数
  • zcount key min max:
    获取分数在[min,max]之间的成员
  • zrank key member:
    返回成员在集合中的排名。(从小到大)
  • zrevrank key member
    返回成员在集合中的排名。(从大到小)