架构师成长记_第五周_04_Redis 五大数据类型的使用

本文介绍了Redis的五大数据类型:String、Hash、List、Set和Zset,并详细阐述了各种类型的操作命令,包括增删查改等基本操作,以及如何设置过期时间和切换数据库等。Redis的数据结构特性使其在缓存、计数、集合操作等方面具有广泛应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis 五大数据类型

PS1 : Redis 命令API

这些命令是不需要死记硬背的, 需要用到的时候, 我们去查一下 API 即可

PS2: redis 数据默认有 16 个库, 默认是 DB 0

在这里插入图片描述

切换到库DB 1 select 1

在这里插入图片描述

每个库都是单独的个体, 数据之间不进行共享数据

在这里插入图片描述

清空数据库

flushdb 清除当前库
flushall 清除所有库

在这里插入图片描述

1. String

  1. get key 获取到key的值
  2. set key value 设置键值对, 如果key存在, 会进行覆盖原先的值
  3. setnx key value 设置键值对, 如果key存在, 则不会添加进去
  4. keys * 查看所有的键
  5. keys *a 查看以a开头的键
  6. keys a* 查看以结尾的键
  7. type key 查看key键的类型
  8. expire key seconds 设置key的过期时间
  9. ttl key 查看key的过期时间, -1为永不过期, -2 为过期
  10. set key value ex seconds 创建键值对并且设置key的过期时间
    在这里插入图片描述在这里插入图片描述
  11. append key value字符串的拼接
  12. strlen key 查看key的长度
  13. incr key 累加
  14. decr key 累减
  15. incrby key increment 在key上增加increment值
  16. decrby key decrement 在key上减少decrement值
    在这里插入图片描述
  17. getrange key start end 取得key值的范围内的值, start, end 为索引下标, end=-1表示无穷
  18. setrange key start value key值从start开始为value
  19. mset key1 value1 key2 value2 ... 设置多个键值对
  20. mget key1 key2 ... 获取多个key的值
  21. msetnx key1 value1 key value2 ... 设置多个无重复键的键值对
    在这里插入图片描述

2. hash

  1. hset key field value 可以理解成设置对象( key{field = value;} )

  2. hget key field 获取key对象field字段的值( key.getField() )
    在这里插入图片描述

  3. hmset key field1 value1 field2 value2 ... 同时设置多个字段键值对, 可以理解成如下内容:

    key {
     field1 : value1,
     field2 : value2,
        ...
    }
    
  4. hmget key field1 field2 ... 同时该对象key下获取多个字段的值
    在这里插入图片描述

  5. hgetall key 获取key对象所有的键值对

  6. hlen key 得到key对象的属性字段个数

  7. hkeys key 得到key对象的所有属性字段

  8. hvals key 得到key对象的所有属性字段的值
    在这里插入图片描述

  9. hincrby key field increment 将key对象的field字段的值增加increment大小

  10. hincrbyfloat key field incrementFloat 将key对象的field字段的值增加incrementFloat浮点值小数大小
    在这里插入图片描述

  11. hdel key field1, field2 ... 删除key对象的field属性字段
    在这里插入图片描述

  12. hexists key field 判断key对象中field字段是否存在, 存在返回 1, 不存在为 0
    在这里插入图片描述

3. list (一个列表下可以存放相同的值)

  1. lpush key value1 value2 value3 ... l表示left, 创建一个key名称的列表, 从左边(列表头插) 依次插入value1, value2…
  2. rpush key value1 value2 value3 ...r表示right, 创建一个key名称的列表,从 右边(列表尾插) 依次插入value1, value2…, 相当于 lpush 的逆序
  3. lrange key start end 得到列表key从start到end的value值
    在这里插入图片描述
  4. lpop key 从key列表左边进行取出值, 取出后原列表会删除该值
  5. rpop key 从key列表右边进行取出
    在这里插入图片描述
  6. llen key 查看key列表的长度
  7. lindex key index 得到key列表下标为index的值, 不会删除该index下的值
  8. lset key index value 修改key列表下index下标的值为value
    在这里插入图片描述
  9. linsert key before|after value newValue 在key列表的value的前面(before)或后面(after)插入值newValue
    在这里插入图片描述
  10. ltrim key start stop 截取key列表下标从start到stop的值, 不在范围内的会被删除
  11. del key 删除key列表
    在这里插入图片描述
  12. type key 查看key的类型
    在这里插入图片描述

4. set (一个列表下不可以存放相同的值, 会自动去除)

  1. sadd key value1 value2 ... 创建一个key的(set)集合, 无序的插入value的值, values的值不可以重复, 重复的话会自动去除
  2. smembers key 查看key(set)集合的列表值
  3. scard key 查看key(set)集合的值的个数
  4. sismember key member 判断key(set)集合中是否有member这个值
    在这里插入图片描述
  5. srem key member 删除key(set)集合中的member值
  6. spop key [count] 弹出key(set)集合中的count个值, 默认为1
    在这里插入图片描述
  7. srandmember key count 随机获取key(set)集合中的count个值
    PS: 用于活动, 或者抽取某几个幸运者, 一般可以使用这个比较方便
    在这里插入图片描述
  8. smove key1 key2 member 将key1(set)集合中的member值取出 (key1中删除此member) 并且移动放入到key2(set)集合中.
    在这里插入图片描述
    在这里插入图片描述
  9. sdiff key1 key2 ... (找差值) 找出在key1(set)集合中有而在key2等其他(set)集合中没有的members值
    在这里插入图片描述
  10. sinter key1 key2 ... (找交集) 找出在key1(set)集合中有并且在key2等其他(set)集合中也有的共同的members值
    在这里插入图片描述
  11. sunion key1 key2 ... (找并集) 找出key1(set)集合, key2(set)集合等等的members进行合并后的members
    在这里插入图片描述

5. zset (有序的 set, 通过绑定一个 int 型score 升序实现)

可以用于用户的积分排名等操作.

  1. zadd key score1 value1 score2 value2 ... 创建一个key名称的(zset)集合, 依次插入带有分数score的值value, 相同值的score会与插入顺序一样, 先插入的在前面, 后插入的在后面
  2. zrange key start end 得到key(zset)集合的索引下标从start到end的值
  3. zrange key start end withscores 得到key(zset)集合的索引下标从start到end的带score的值
    在这里插入图片描述
  4. zrank key member 获得key(zset)集合中member的下标
  5. zscore key member 获得key(zset)集合中member的分数score值
  6. zcard key 获得key(zset)集合中值的个数
  7. zcount key min max 统计出key(zset)集合中分数score在min~max间的个数, 包含边界值
  8. zrangebyscore key min max [withscores] 得到key(zset)集合中分数score在min~max间的具体内容值, 包含边界
  9. zrangebyscore key (min (max [withscores] 得到key(zset)集合中分数score在min~max间的具体内容值, (即表示不包含min和max
    在这里插入图片描述
  10. zrangebyscore key min max limit offset count 得到key(zset)集合中包含边界值的[min,max]的具体值, 然后进行分页limit处理, 从这个得到的集合中再次处理, 最终返回从offset下标开始的, 数量为count个数的内容.(limit 是进行的子检索)
    在这里插入图片描述
  11. zrem key member ... 删除key(zset)集合中的members值
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_大木_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值