0


【Redis】十大数据类型(上篇)

文章目录

概述

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

  • 命令官网- 英文版:https://redis.io/commands/- 中文版:http://redis.cn/commands.html/

  • Key命令> 命令不区分大小写,但是key区分命令说明keys *查看当前库所有的keyexists key判断某个key是否存在,返回1表示存在,返回0表示不存在type key查看你的key是什么类型del key删除指定的key数据unlink key非阻塞删除,仅仅将keys从keyspace元数据中删除,真正的删除会在后续异步中操作ttl key查看还有多少秒过期,-1表示永不过期,-2表示已过期expire key 秒数给定的key设置过期时间move key dbindex【0-15】将当前数据库的 key移动到给定的数据库 db 当中select dbindex切换数据库[0-15] ,默认为0,配置文件中databases 16dbsize查看当前数据库key的数量flushdb清空当前库flushall通杀全部库

  • Redis 的过期时间设置有四种形式:- EXPIRE 秒——设置指定的过期时间(秒),表示的是时间间隔。- PEXPIRE 毫秒——设置指定的过期时间,以毫秒为单位,表示的是时间间隔。- EXPIREAT 时间戳-秒——设置指定的 Key 过期的 Unix 时间,单位为秒,表示的是时间/时刻。- PEXPIREAT 时间戳-毫秒——设置指定的 Key 到期的 Unix 时间,以毫秒为单位,表示的是时间/时刻。

redis字符串(String)

string是redis最基本的类型,一个key对应一个value。
string类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

  • 最最常用 set key value> > set key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]> 在这里插入图片描述在这里插入图片描述

  • 常用命令图示在这里插入图片描述在这里插入图片描述

  • 多值设置 msetmget- mset - 同时设置一个或多个 key-value 对- mget - 获取所有(一个或多个)给定 key 的值

  • 获取指定区间范围内的值 getrangesetrange- getrange > 类似between…and的关系> > > - 从零到负一表示全部- setrange > 设置指定区间范围内的值,格式是setrange key值 具体值> 起到覆盖

  • 数值增减 INCR keyDECR key> 一定要数值类型数据- INCR key > 递增> > > - INCR key increment- DECR key > 递减> > > - DECR key increment

  • 获取内容长度及内容追加 STRLEN keyAPPEND key xxx- STRLEN key > 长度- APPEND key xxx > 内容追加

  • 动态设置过期时间,分布式锁- SETEX key 秒数 value在这里插入图片描述- key不存在时才设置 SETNX key value在这里插入图片描述

  • 先弹出老值,再建新值 getset在这里插入图片描述

redis列表 (List)

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
它的底层实际是个双端链表,最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)

  • 常用命令图示在这里插入图片描述在这里插入图片描述

  • lpush/rpush/lrange> 没有rrange在这里插入图片描述

  • lpop/rpop> 出栈,弹出元素在这里插入图片描述

  • 按照索引下标获得元素(从上到下) lindex在这里插入图片描述

  • 获取列表中的元素个数 llen在这里插入图片描述

  • 根据值删除 lrem key 数字N 给定值v1> 解释(删除N个值等于v1的元素),LREM list3 0 值,表示删除全部给定的值。零个就是全部值在这里插入图片描述

  • 截取索引范围内的,相当于删除索引外的 ltrim key 开始index 结束index> 截取指定索引区间的元素,格式是ltrim list的key 起始索引 结束索引在这里插入图片描述

  • 移除列表的最后一个元素,并将该元素添加到另一个列表并返回keyrpoplpush 源列表 目的列表在这里插入图片描述

  • 按照索引修改列表的元素 lset key index value在这里插入图片描述

  • 在已有的值前面/后面插入新的值 linsert key before/after 已有值 插入的新值在这里插入图片描述

redis哈希表(Hash)

Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。
Redis 中每个 hash 可以存储 2^32 - 1 键值对(40多亿)
本质就是KV,K不变的情况下,V拆分新的kv

  • 常用命令图示在这里插入图片描述

  • hset/hget/hmset/hmget/hgetall/hdel> 增、查、批量增、批量查、查全部(python的dick.items())、删除在这里插入图片描述

  • hlen KEY,获取hash内的kv键值对个数

  • hexists KEY 在KEY里面的某个值的key 判断某个值在不在里面> 存在返回1,不存在返回0

  • hkeys/hvals KEY 单独罗列key、单独罗列key对应的值

  • hincrby/hincrbyfloat 增加在这里插入图片描述

  • hsetnx KEY key value 不存在赋值,存在了无效> 不存在赋值,存在了无效在这里插入图片描述

  • 应用:购物车新增商品 → hset shopcar:uid1024 334488 1新增商品 → hset shopcar:uid1024 334477 1增加商品数量 → hincrby shopcar:uid1024 334477 1商品总数 → hlen shopcar:uid1024全部选择 → hgetall shopcar:uid1024在这里插入图片描述

redis集合 (Set)

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据,集合对象的编码可以是 intset 或者 hashtable。
Redis 中Set集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)

  • 常用命令说明在这里插入图片描述

  • 添加元素SADD key member [member...]在这里插入图片描述

  • SMEMBERS key 遍历集合中的所有元素

  • SISMEMBER key member 判断元素是否在集合中

  • SREM key member [member ...] 删除元素

  • scard key 统计集合里面的元素个数

  • 从集合中随机展现设置的数字个数元素,元素不删除 SRANDMEMBER key [数字]

  • SPOP key [数字] 从集合中随机弹出一个元素,出一个删一个

  • smove key1 key2 在key1里已存在的某个值 将key1里已存在的某个值赋给key2

  • 重要,集合运算- 集合的差集运算 A - B =》 SDIFF set1 set2- 集合的并集运算 A U B = 》 SUNION set1 set2- 集合的交集运算 A n B =》 SINTER set1 set2- SINTERCARD numkeys key [key ...] [LIMIT limit]>

  • 应用:共同好友、推荐在这里插入图片描述

redis有序集合 (ZSet)

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
zset集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 232 - 1

  • 常用命令图示在这里插入图片描述在这里插入图片描述

  • 添加元素 ZADD key score member [score member ...]在这里插入图片描述

  • 按照元素分数从小到大的顺序遍历出来 ZRANGE key start stop [WITHSCORES]> WITHSCORES 参数不带,会返回值,带了的话会连同分数一起返回> 返回索引从start到stop之间的所有元素0

  • 倒序 zrevrange在这里插入图片描述

  • ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 获取指定分数范围的元素> limit是返回的数量,与mysql分页相似 > > ZRANGEBYSCORE zset1 60 90 withscores limit 0 1> 在这里插入图片描述

  • ZSCORE key member 获取元素的分数

  • ZCARD key 获取集合中元素的数量

  • zrem key 某score下对应的value值 作用是删除元素在这里插入图片描述

  • 增加某个元素的分数ZINCRBY key increment member

  • 获得指定分数范围内的元素个数ZCOUNT key min max

  • ZMPOP从键名列表中的第一个非空排序集中弹出一个或多个元素,它们是成员分数对在这里插入图片描述

  • zrank key values值,作用是获得下标值

  • zrevrank key values值,作用是逆序获得下标值

  • 应用:根据商品销售对商品进行排序显示在这里插入图片描述

标签: redis 数据库 缓存

本文转载自: https://blog.csdn.net/al6nlee/article/details/129806375
版权归原作者 Al6n Lee 所有, 如有侵权,请联系我们删除。

“【Redis】十大数据类型(上篇)”的评论:

还没有评论