大数据之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] 迭代集合中的元素

你可能感兴趣的:(redis,大数据组件应用,redis,大数据)