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

文章目录

  • Redis 五大数据类型
    • PS1 : [Redis 命令API](http://redisdoc.com/index.html)
    • PS2: redis 数据默认有 16 个库, 默认是 DB 0
      • 切换到库DB 1 `select 1`
      • 每个库都是单独的个体, 数据之间不进行共享数据
      • 清空数据库
        • `flushdb` 清除当前库
        • `flushall` 清除所有库
    • 1. String
    • 2. hash
    • 3. list (一个列表下可以存放相同的值)
    • 4. set (一个列表下不可以存放相同的值, 会自动去除)
    • 5. zset (有序的 set, 通过绑定一个 int 型score 升序实现)

Redis 五大数据类型

PS1 : Redis 命令API

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

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

在这里插入图片描述

切换到库DB 1 select 1

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

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

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

清空数据库

flushdb 清除当前库

flushall 清除所有库

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

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的过期时间
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第4张图片架构师成长记_第五周_04_Redis 五大数据类型的使用_第5张图片
  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值
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第6张图片
  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 ... 设置多个无重复键的键值对
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第7张图片

2. hash

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

  2. hget key field 获取key对象field字段的值( key.getField() )
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第8张图片

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

    key {
           
     field1 : value1,
     field2 : value2,
        ...
    }
    
  4. hmget key field1 field2 ... 同时该对象key下获取多个字段的值
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第9张图片

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

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

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

  8. hvals key 得到key对象的所有属性字段的值
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第10张图片

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

  10. hincrbyfloat key field incrementFloat 将key对象的field字段的值增加incrementFloat浮点值小数大小
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第11张图片

  11. hdel key field1, field2 ... 删除key对象的field属性字段
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第12张图片

  12. hexists key field 判断key对象中field字段是否存在, 存在返回 1, 不存在为 0
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第13张图片

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值
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第14张图片
  4. lpop key 从key列表左边进行取出值, 取出后原列表会删除该值
  5. rpop key 从key列表右边进行取出
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第15张图片
  6. llen key 查看key列表的长度
  7. lindex key index 得到key列表下标为index的值, 不会删除该index下的值
  8. lset key index value 修改key列表下index下标的值为value
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第16张图片
  9. linsert key before|after value newValue 在key列表的value的前面(before)或后面(after)插入值newValue
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第17张图片
  10. ltrim key start stop 截取key列表下标从start到stop的值, 不在范围内的会被删除
  11. del key 删除key列表
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第18张图片
  12. type key 查看key的类型
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第19张图片

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这个值
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第20张图片
  5. srem key member 删除key(set)集合中的member值
  6. spop key [count] 弹出key(set)集合中的count个值, 默认为1
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第21张图片
  7. srandmember key count 随机获取key(set)集合中的count个值
    PS: 用于活动, 或者抽取某几个幸运者, 一般可以使用这个比较方便
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第22张图片
  8. smove key1 key2 member 将key1(set)集合中的member值取出 (key1中删除此member) 并且移动放入到key2(set)集合中.
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第23张图片
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第24张图片
  9. sdiff key1 key2 ... (找差值) 找出在key1(set)集合中有而在key2等其他(set)集合中没有的members值
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第25张图片
  10. sinter key1 key2 ... (找交集) 找出在key1(set)集合中有并且在key2等其他(set)集合中也有的共同的members值
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第26张图片
  11. sunion key1 key2 ... (找并集) 找出key1(set)集合, key2(set)集合等等的members进行合并后的members
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第27张图片

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的值
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第28张图片
  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
    架构师成长记_第五周_04_Redis 五大数据类型的使用_第29张图片
  10. zrangebyscore key min max limit offset count 得到key(zset)集合中包含边界值的[min,max]的具体值, 然后进行分页limit处理, 从这个得到的集合中再次处理, 最终返回从offset下标开始的, 数量为count个数的内容.(limit 是进行的子检索)
    在这里插入图片描述
  11. zrem key member ... 删除key(zset)集合中的members值

你可能感兴趣的:(You,Are,the,Architect,我的百宝箱,日常小知识随笔,redis,数据库)