大数据之Redis——redis基础操作

redis操作命令锦集

前面给大家介绍了redis的7种部署方案,相关链接如下:

https://blog.csdn.net/myself_ning/article/details/125628676?spm=1001.2014.3001.5501

但是,仅仅只会部署是远远不够滴,部署只是学习的第一步,重点还要放在其应用。 本节介绍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 表示不存在
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]之间的成员

总结

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

String(字符串)

命令描述
set key value设置指定key的值
get key获取指定key的值
getrange key start end返回字符串值的子字符串(substring)
getset key value将给定key的值设为value,并返回key的旧值
getbit key offset对 key 所储存的字符串值,获取指定偏移量上的位(bit)
mget key1 [key2…]获取一个或多个给定key的值
strlen key返回key所存储的字符串的长度
mset key value [key value]同时设置一个或多个key-value值
incr key将key存储的值+1
incrby key increment将key存储的值+increment
incrbyfloat key increment将key存储的值+increment(浮点数)
decrby key increment将key存储的值-increment
decr key将key存储的值-1
append key value在原有key的值后面追加value

List(列表)

命令描述
lindex key index通过索引获取列表中的元素
linsert key before/after value在列表元素的前或者后插入元素
llen key获取列表长度
lpop key移除并获取列表的第一个元素
lpush key value [value2]将一个或多个元素插入列表头部
lpushx key value将一个值插入到已存在的列表头部
lrange key start stop获取列表指定范围内的元素
lrem key count value移除列表元素
lset key index value通过索引设置列表元素的值
ltrim key start stop对列表进行去空,保留指定范围内的元素
rpop key移除列表中的最后一个元素,返回该元素
rpoplpush source destination移除列表中的最后一个元素,并将该元素添加到另一个列表中
rpush key value [key2 value2]在列表中添加一个或多个值
rpush key value为已存在的列表添加值

Hash(哈希)

命令描述
hdel key field [field2]删除一个或多个哈希表字段
hexists key field查看哈希表key中,指定的字段是否存在
hget key field获取存储在哈希表中指定字段的值
hgetall key获取在哈希表中指定key的所有字段和值
hincrby key field increment为哈希表key中指定的字段的整数加上增量increment
hincrbyfloat key field increment为哈希表key中的指定字段的浮点数值加上增量increment
hkeys key获取所有哈希表中的字段
hlen key获取哈希表中字段的数量
hmget key field [field2]获取所有给定字段的值
hset key field value [field2 value2]同时将多个field-value值设置到哈希表中
hset key filed value将哈希表key中的字段field的值设为value
hsetnx key field value只有字段field不存在时,设置哈希表字段的值
hvals key获取哈希表中所有值
hscan key cursor [match pattern] [COUNT count]迭代哈希表中的键值对

Set(集合)

命令描述
sadd key member [member]向集合中添加一个或多个成员
scard key获取集合中的成员数
sdiff key1 [key2]返回第一个集合和其他集合之间的差异
sdiffstore destination key [key2]返回给定所有集合的差集并存储在destination中
sinter key [key2]返回给定集合的交集
sinterstore destination key1 [key2]返回给定所有集合中的交集并存储在destination中
sismember key member判断member元素是否是集合key的成员
smembers key返回集合中的所有成员
smove source destination member将member元素从source集合移动到destination集合
spop key移除并返回集合中的第一个元素
srandmember key [count]返回集合中一个或多个随机数
srem key member [member2]移除集合中的一个或多个成员
sunion key member [member2]返回所有与给定集合的并集
sunionstore destination key [key2]返回给定集合的并集并存储在destination集合中
sscan cursor [match pattern] [COUNT count]迭代集合中的元素
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值