Redis数据类型

Redis键

  • 查看key:
    在这里插入图片描述
  • 判断键是否存在:

在这里插入图片描述

  • 判断键的类型:
    在这里插入图片描述
  • 删除键:
  1. del key
  2. ulink key
  3. unlink仅将keys从keysspace元数据中删除,真正的删除会在后续的异步操作
  • 设置键的过期时间:
  1. expire K1 10表示K1 10S后过期
  2. 查看过期时间,-1表示永不过期,-2表示已经过期,整数表示还有多少秒过期

在这里插入图片描述

数据库操作

  1. 切换数据库:select 1默认使用0号数据库,数据库编号0~15
  2. 查看当前数据库的key的数量:dbsize
  3. 清空当前库的内容:flushdb
  4. 清空所有库中的内容:fluashall

在这里插入图片描述

字符串

  1. String是Redis最基本的数据类型,同时是二进制安全的,即Redis的String可以包含任何数据
  2. 一个字符串的value最多可以是512M
  3. String的底层数据结构是简单动态字符串,类似与C++中的String类型
  • 基本命令:
  1. 设置值:set,没有key将会创建,否则会修改value值
  2. 获取值:get key
  3. 将给定的value追加到原值的末尾:append key value
  4. 获取值的长度: strlen key
  5. 只有在key不存在时,设置key的值:setnx key value

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. incr key将key中存储的数字值+1,incrby key 步长将key中存储的值增加步长
  2. decr key将key中存储的数字值-1,decrby key 步长将key中存储的值减少步长
  3. 只能对数字值进行操作,这类操作具有原子性,即不会被线程调度打断

在这里插入图片描述

  1. mset: 同时设置多个key-value
  2. mget: 同时获取多个value
  3. msetnx:同时设置多个key-value ,当且仅当所有给定的key都不存在时,才成功

在这里插入图片描述

  1. getrange获取一定范围的值类似与substr
  2. setrange设置一定范围的值

在这里插入图片描述

  1. setex设置key-value同时设置过期时间
  2. getset以新换旧,设置了新值同时获得旧值

在这里插入图片描述

列表

  1. Redis列表是简单的字符串列表,按照插入顺序排序,可以在列表头部尾部插入元素,底层是一个双向链表
  2. 列表元素较少的情况下,会使用连续的内存存储,结构成为ziplist压缩列表,当数据量比较多的时候才会改成quicklist,即将ziplist与链表组合成quicklist,可以满足快速插入删除性能,又不会出现太大的空间冗余
    在这里插入图片描述
  • 常用的命令:
  1. lpush/rpush从左边/右边插入一个或多个值(头插法/尾插法)
  2. lpop/rpop从左边或右边吐出一个值,值在键在,值光键亡
  3. lrange取出指定范围的值,0表示最左边,-1表示最右边

在这里插入图片描述
在这里插入图片描述

  1. rpoplpush:key1列表的右边吐出1个值,插入到key2列表的右边
  2. lindex按照索引下标获取元素
  3. llen获取列表的长度

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. insert key before/after value newvaluevalue后面插入newvalue的值
  2. lrem Key n value从左到右删除nvalue
  3. lset Key index value将下标为index的值替换为value

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

集合

  1. Redis Set对外提供的功能与list类似是一个列表的功能,但set可以自动排除重复
  2. Redis Set是string类型的无序集合,底层是一个hash表
  • 基本命令:
  1. sadd:将一个或多个元素加入集合中
  2. smembers:取出该集合的所有值
  3. sismember <key> <vlalue>判断集合<key>是否包含该<value>
  4. scard:返回集合中的元素个数

在这里插入图片描述

  1. srem删除集合中的某些元素
  2. spop <key> <n>随机吐出集合中的一/多个值(n可加可不加)
  3. srandmember <key> <n>随机从集合中取出n个值,但不会从集合中删除

在这里插入图片描述

  1. smove <source> <distination> value把集合中的一个值移动到另一个集合中
  2. sinter <key1> <key2>返回两个集合的交集元素
  3. sunion <key1> <key2>返回两个集合的并集元素
  4. sdiff <key1> <key2>返回两个集合的差集元素

在这里插入图片描述
在这里插入图片描述

哈希

  1. Redis中的哈希是一个键值对的集合,是一个string类型的fieldvalue的映射表,特别适合存储对象

在这里插入图片描述2. Hash对应的数据结构有两种,ziplist压缩列表和hashtable哈希表,当field-value长度较短且个数较少时,使用压缩列表,否则使用hash表

  • 常用命令:
  1. hset<key> <field> <value><key>集合的<field>键赋值<value>hmsethset功能和用法相同
  2. hget <key> <field><key>集合<field>中取出value
  3. hexists <key> <field>查看哈希表中给定域是否存在

在这里插入图片描述

  1. hkeys <key>列出hash集合中所有field
  2. hvals <key>列出hash集合中的所有value

在这里插入图片描述

  1. hincrby <key> <field> <increment>为hash表key中的field域加上增量(前提必须是整数)
  2. hsetnx <key> <field> <value>将hash表key中的field域设置为value,当且仅当域field不存在,才能成功

在这里插入图片描述

有序集合

  1. Redis有序集合Zset和普通集合非常相似,是一个没有重复元素的字符串集合,不同之处是有序集合的每个成员都关联了一个评分,这个评分被用来按照从最低分到最高分的方式排序集合的成员,集合的成员是唯一的,但是评分可以重复的
  2. zset中使用了两种数据结构
    (1)hash,hash的作用就是关联元素value和权重score,保障元素value的唯一性,可以通过元素value找到相应的score
    (2)跳跃表 跳跃表的目的是给元素value排序,根据scrore的范围获取元素列表

在这里插入图片描述

  • 基本命令:
  1. zset <key> <score1> <value1> <score2> <value2>将一个或多个元素及其评分加入有序集合<key>
  2. zrange key start stop [withscores]返回有序集合key中,下标<start> <stop>之间的元素,带withscores可以让分数和值一起返回到结果集
  3. zrangebyscore <key> min max [withscores]返回有序集合<key>中,所有scores值介于minmax之间的成员,有序集成员按score值递增的次序排列
  4. zrevrangebyscore <key> max min [withscores]返回有序集合<key>中,所有scores值介于minmax之间的成员,有序集成员按score值递递减的次序排列

在这里插入图片描述在这里插入图片描述

  1. zcrby <key> <increment> <value>为元素的score加上增量
  2. zrem <key> <value>删除该集合下,指定值的元素

在这里插入图片描述

  1. zcount <key> <min> <max>统计该集合,分数区间内的元素个数
  2. zrank <key> <value>返回该值在集合中的排名,从0开始

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

m0_46427273

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

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

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

打赏作者

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

抵扣说明:

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

余额充值