陪你一起学redis(六)——redis基本数据类型

134 阅读3分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第13天,点击查看活动详情

前言

Redis中存储数据是通过key-value格式存储数据的,其中value可以定义五种数据类型,分别是String(字符类型),Hash(散列类型),List(列表类型),Set(集合类型),SortedSet(有序集合类型,简称zset)

(string)字符类型

常用命令

  1. 取值:get key
  2. 赋值:set key value
  3. 取值并赋值:getset key value
  4. 数值自增(每次加1):incr key
  5. 数值自增(自定义步长,num为数字类型):incrby key num
  6. 数值自减(每次减1):decr key
  7. 数值自减(自定义步长,num为数字类型):decrby key num
  8. 仅当不存在时赋值:setnx key value
  9. 字符串追加(如果key不存在,相当于赋值操作):append key value
  10. 字符串长度:strlen key
  11. 同时设置多个值:mset key1 value1 key2 value2
  12. 同时获取多个值:mget key1 key2

场景

  • 分布式锁
  • 自增主键
  • 商品订单号采用INCR命令生成

(hash)散列类型

常用命令

  1. 赋值:

    设置一个字段值:hset key field value

    设置多个字段值:hmset key field1 value1 field2 value2

    当字段不存在时赋值:hsetnx key field value

  2. 取值:

    获取一个字段值:hget key field value

    获取多个字段值:hmget key field1 field2

    获取所有字段值:hgetall key

  3. 删除:hdel key field1 field2

  4. 数字自增:hincrby key field num

  5. 字段是否存在:hexists key field

  6. 只获取字段:hkeys key

  7. 只获取字段值:hvals key

  8. 获取字段数量:hlen key

场景

记录商品信息 记录用户信息

(list)列表类型

常用命令

  1. 从左侧添加:lpush key value1 value2 value3

  2. 从右侧添加:rpush key value1 value2 value3

  3. 从左侧弹出一个元素:lpop key

  4. 从右侧弹出一个元素:rpop key

  5. 删除元素:

    从左侧开始删除(count>0):lrem key count value

    从右侧开始删除(count<0):   lrem key count value

    删除所有等于value的元素:lrem key 0 value

  6. 获取一个区间里的元素:lrange key start stop

  7. 获取所有元素:lrange key 0 -1

  8. 获取指定索引的元素的值:lindex key index

  9. 保留指定范围的元素:ltrim key start stop

  10. 在某个元素之前或之后插入值:linsert key before/after pivot value

  11. 将一个list的最后的一个元素转移到新的list里面:rpoplpush oldlist newlist

场景

商品评价列表按照时间顺序降序排序

(set)集合类型

常用命令

  1. 添加元素:sadd key value1 value2
  2. 移除元素:srem key value1 value2
  3. 查看所有元素:smembers key
  4. 判断某个元素是否存在:sismember key value1 value2
  5. 查看元素个数:scard key
  6. 求差集:sdiff key1 key2
  7. 求交集:sinter key1 key2
  8. 求并集:sunion key1 key2
  9. 从集合中弹出一个元素:spop key1

场景

抽奖

(sortedSet)有序集合类型

常用命令

  1. 添加元素:zadd key score member
  2. 移除元素:zrem key member
  3. 查看元素(从小到大):zrange key start stop withscores
  4. 查看元素(从大到小):zrevrange key start stop withscores
  5. 获取元素的分数:zscore key member
  6. 查看元素个数:zcard key
  7. 查看指定分数范围内的元素个数:zcount key min max
  8. 删除一个或多个元素:zrem key member
  9. 查询分数范围内的元素个数:zrnagebyscore key start stop
  10. 元素分数自增:zincrby key num member
  11. 按照排名范围删除元素:zremrangebyrank key start stop
  12. 按照分数范围删除元素:zremrangebyscore key min max
  13. 获取元素从小到大顺序的排名:zrank key member
  14. 获取元素从大到小顺序的排名:zrevrank key member

场景

  • 销售量排名 
  • 点击率排名
  • 评论量排名

结束

需要交流学习可以关注公众号【温故知新之java】,互相学习,一起进步