第一节:Redis的数据类型和基本操作

news2024/9/24 19:21:25

最近整理了关于Redis的一些文档,分享给大家,后续会持续更新......

    1. Redis的数据类型
      1. 字符串String

String:字符串,可以存储String、Integer、Float型的数据,甚至是二进制数据,一个字符串最大容量是512M

      1. 列表List

List:字符串List,底层实现上不是数组,而是链表,也就是说在头部和尾部插入一个新元素,其时间复杂度是常数级别的;其弊端是:元素定位比数组慢

      1. 集合Set

Set:字符串Set,无序不可重复,是通过HashTable实现的

      1. 哈希Hash

Hash:按Hash方式来存放字符串

      1. 有序集合ZSet

ZSet:字符串Set,有序且不可重复,根据Score来排序。底层使用散列表和跳跃表来实现,所以读取中间部分数据也很快

    1. Redis的基本操作
      1. Keys常用操作命令
  1. Keys:获得符合规则的键名列表
    1. 格式是keys pattern,pattern支持glob风格通配符格式:
    2. (1)? 匹配一个字符
    3. (2)* 匹配任意个字符
    4. (3)[] 匹配中括号内的任一字符,可以用-来表示一个范围
    5. (4)\x 匹配字符x,用于转义符号
  2. exists:判断键值是否存在,格式是exists key
  3. del:删除key,格式是del key。

小技巧:Del命令不支持通配符,可以结合linux管道和xargs命令来自定义

删除,示例如下:redis-cli keys k* | xargs redis-cli del

  1. type:获得键值的数据类型,格式是type key
  2. rename:改名,格式是rename oldKey newKey
  3. renamenx:如果不存在则改名,格式是rename oldKey newKey
      1. 处理过期keys的命令

1:expire:设置过期时间,格式是expire key值 秒数

2:expireat:设置过期时间,格式是expireat key值 到秒的时间戳

3:ttl:查看还有多少秒过期,格式是ttl key值,-1表示永不过期,-2表示已过期

4:persist:设置成永不过期,格式是persist key值,删除key的过期设置;另外使用set或

者getset命令为键赋值的时候,也会清除键的过期时间

5:pttl:查看还有多少毫秒过期,格式是pttl key值

6:pexpire:设置过期时间,格式是pexpire key值 毫秒数

7:pexpireat:设置过期时间,格式是pexpireat key值 到毫秒的时间戳

      1. String类型的操作命令

1:get、set、del:获取key的值、设置key和值、删除key

2:incr、decr:递增和递减整数值,格式是incr key值

3:incrby、decrby:递增和递减整数值,可指定增减的数值,格式是incrby key值 正负数值

4:incrbyfloat:递增和递减浮点数值,格式是incrbyfloat key值 正负数值

5:append:在尾部追加值,格式是append key值 追加的值

6:getrange:获取指定索引范围内的值,格式是getrange key值 起始索引 结束索引

7:setrange:从索引位置开始设置后面的值,格式是setrange key值 offset索引 值

8:strlen:返回键值的长度,格式是strlen key值

9:mget:同时获得多个键的值,格式是mget 多个key值

10:mset:同时设置多个键值对,格式是mset key值 value , key和value可以多对

11:bitcount:获取范围内为1的二进制位数,格式是bitcount key值 [start end]

12:getbit:获取指定位置的二进制位的值,格式是getbit key值 offset索引

13:setbit:设置指定位置的二进制位的值,格式是setbit key值 offset索引 值

14:bitop:对多个二进制值进行位操作,格式是bitop 操作 目的key key值1 key值2,操作有and、or、

xor、not,key值可以是多个

15:getset:原子的设置key的值,并返回key的旧值 ,格式是getset key value

      1. List类型的操作命令

1:lpush/rpush:添加值,格式是 rpush list的key item项的值,值可以是多个

2:lrange:按索引范围获取值,格式是 lrange list的key 起始索引 终止索引,-1表示最后一个索引

3:lindex:获取指定索引的值,格式是 lindex list的key 索引号

4:lpop/rpop:弹出值,格式是 lpop list的key

5:llen:获取元素个数,格式是llen list的key

6:lrem:删除元素,格式是lrem list的key 数量 item项的值,数量可正负,表示从左或右删除,如果数

量为0,表示删除全部与给定值相等的项

7:ltrim:保留指定索引区间的元素,格式是ltrim list的key 起始索引 结束索引

8:blpop/brpop:弹出值,格式是blpop list的key值 过期时间,key可以是多个,如果没有值,会一值等

待有值,直到过期

9:rpoplpush:将元素从一个列表转移到另外一个列表,格式是rpoplpush 源list的key值 目的list的key

10:brpoplpush:将元素从一个列表转移到另外一个列表,格式是brpoplpush 源list的key值 目的list的

key值 过期时间

11:lset:设置指定索引的值,格式是lset list的key 索引 新的值

12:linsert:插入元素,格式是linsert list的key before|after 定位查找的值 添加的值

      1. Set类型的操作命令

1:sadd:添加元素,格式是 sadd set的key item项的值,item项可以多个

2:smembers:获取集合中所有元素,格式是 smembers set的key

3:sismember:判断元素是否在集合众,格式是 sismember set的key item项的值

4:srem:删除元素,格式是 srem set的key item项的值

5:scard:获取集合中元素个数,格式是scard set的key

6:srandmember:随机获取集合中的元素,格式是srandmember set的key [数量],数量为正的时候,会随

机获取这么多个不重复的元素;如果数量大于集合元素个数,返回全部;如果数量为负,会随机获得这

么多个元素,可能有重复

7:spop:弹出元素,格式是spop set的key

8:smove:移动元素,格式是smove 源set的key 目的set的key item项的值

9:sdiff:差集,返回在第一个set里面而不在后面任何一个set里面的项,格式是sdiff set的key 用来比

较的多个set的key

10:sdiffstore:差集并保留结果,格式是命令 存放结果的set的key set的key 用来比较的多个set的key

11:sinter:交集,返回多个set里面都有的项,格式是sinter 多个set的key

12:sinterstore:交集并保留结果,格式是sinter 存放结果的set的key 多个set的key

13:sunion:并集,格式是sunion 多个set的key

14:sunionstore:并集并保留结果,格式是sunionstore 存放结果的set的key 多个set的key

      1. Hash类型的操作命令

1:hset:设置值,格式是hset Hash的Key 项的key 项的值

2:hmset:同时设置多对值,格式是hmset Hash的Key 项的key 项的值,项的key和值可多对

3:hgetall:获取该Key下所有的值,格式是hgetall Hash的Key

4:hget:获取值,格式是hget Hash的Key 项的key

5:hmget:同时获取多个值,格式是hmget Hash的Key 项的key,项的key可以是多个

6:hdel:删除某个项,格式是hdel Hash的Key 项的key

7:hlen:获取Key里面的键值对数量,格式是hlen Hash的Key

8:hexists:判断键值是否存在,格式是hexists Hash的Key 项的key

9:hkeys:获取所有Item的key,格式是hkeys Hash的Key

10:hvals:获取所有Item的值,格式是hvals Hash的Key

11:hincrby:增减整数数字,格式是hincrby Hash的Key 项的key 正负整数

12:hincrbyfloat:增减Float数值,格式是hincrbyfloat Hash的Key 项的key 正负float

13:hsetnx: 如果项不存在则赋值,存在时什么都不做, 格式是hsetnx Hash的Key 项的

key 项的值

      1. ZSet类型的操作命令

1:zadd:添加元素,格式是zadd zset的key score值 项的值,Score和项可以是多对,score可以是整数,

也可以是浮点数,还可以是+inf表示正无穷大,-inf表示负无穷大

2:zrange:获取索引区间内的元素,格式是zrange zset的key 起始索引 终止索引 (withscores)

3:zrangebyscore:获取分数区间内的元素,格式是zrangebyscore zset的key 起始score 终止score

(withscores),默认是包含端点值的,如果加上“(”表示不包含;后面还可以加上limit来限制

4:zrem:删除元素,格式是zrem zset的key 项的值,项的值可以是多个

5:zcard:获取集合中元素个数,格式是zcard zset的key

6:zincrby:增减元素的Score,格式是zincrby zset的key 正负数字 项的值

7:zcount:获取分数区间内元素个数,格式是zcount zset的key 起始score 终止score

8:zrank:获取项在zset中的索引,格式是zrank zset的key 项的值

9:zscore:获取元素的分数,格式是zscore zset的key 项的值,返回项在zset中的score

10:zrevrank:获取项在zset中倒序的索引,格式是zrevrank zset的key 项的值

11:zrevrange:获取索引区间内的元素,格式是zrevrange zset的key 起始索引 终止索引 (withscores)

12:zrevrangebyscore:获取分数区间内的元素,格式是zrevrangebyscore zset的key 终止score 起始

score (withscores)

13:zremrangebyrank:删除索引区间内的元素,格式是zremrangebyrank zset的key 起始索引 终止索引

14:zremrangebyscore:删除分数区间内的元素,格式是命令 zset的key 起始score 终止score

15:zinterstore:交集,格式是ZINTERSTORE dest-key key-count key [key ...] [WEIGHTS weight

[weight ...]] [AGGREGATE SUM|MIN|MAX]

16:zunionstore:并集,格式是ZUNIONSTORE dest-key key-count key [key ...] [WEIGHTS weight

[weight ...]] [AGGREGATE SUM|MIN|MAX]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1701356.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我理解的“财富真相”……

我理解的“财富真相” 人生富贵一途,年轻时会认为钱特别重要,因为要啥没啥,所以整台好车,或有个安乐窝基本是极限目标理解,其实也想有更多钱,但往远了说就具体目标模糊了,咬牙切齿的谈理想&…

618购物节值得入手哪些数码?值得入手的宝藏数码好物安利!

随着618购物节的到来,数码爱好者们纷纷摩拳擦掌,期待在这个年中大促中寻觅到心仪的数码好物,那么在这个618购物节,有哪些数码产品值得我们入手呢?接下来,就让我们一起盘点那些值得入手的宝藏数码好物吧&…

靠AI创意,变现20w!

文章首发于公众号:X小鹿AI副业 大家好,我是程序员X小鹿,前互联网大厂程序员,自由职业2年,也一名 AIGC 爱好者,持续分享更多前沿的「AI 工具」和「AI副业玩法」,欢迎一起交流~ 之前X小鹿一直在各…

注册表Windows兼容性设置(AppCompatFlags)

属性 - 兼容性 EXE文件属性中有兼容性标签,当有些老版本软件不能正常运行时经常会调整这里的设置。 image.png 上面的所有选项都写在注册表中,其中“更改所有用户的设置”保存在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppC…

一步步实现知乎热榜采集:Scala与Sttp库的应用

背景 在大数据时代,网络爬虫技术发挥着不可或缺的作用。它不仅能够帮助我们快速地获取互联网上的信息,还能处理和分析这些数据,为我们提供深刻的洞察。知乎,作为中国领先的问答社区,汇聚了各行各业的专家和广大用户的…

Selenium探险家:驾驭Web自动化的秘籍与实战

Hi,我是阿佑,今天将带大伙们学会如何使用Selenium进行高效的网站测试,如何配置Selenium Grid实现分布式测试,以及如何预测和拥抱自动化测试的未来! 文章目录 1. 引言2. 背景介绍2.1 Selenium概览2.2 Python与Selenium的…

力扣刷题--268. 丢失的数字【简单】

题目描述🍗 给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 示例 1: 输入:nums [3,0,1] 输出:2 解释:n 3,因为有 3 个数字,所以…

YOLOv5 | 卷积模块 | 提高网络的灵活性和表征能力的动态卷积【附代码+小白可上手】

💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 轻量级卷积神经网络由于其低计算预算限制了CNNs的深度(卷积层数)和宽度(通道数),…

广义线性chirplet变换【附MATLAB代码】

文章来源:微信公众号:EW Frontier 摘要 时频分析方法是一种刻画信号时变特征的有效工具,在相当长的一段时间内受到了广泛的关注。随着TF算法的发展,许多先进的方法被提出,可以提供更精确的TF结果。但是,不…

第一届 长城杯 总决赛wp

第一届 长城杯 总决赛 - Ahisec 第一阶段 Zip_guessinteger 第一层bkcrack攻击部分明文,注意偏移 ​ ┌──(root㉿Ten)-[~/tools/Misc/bkcrack] └─# ./bkcrack -C zip_guessinteger.zip -c breakthroughentry.txtflag.txt.zip -p 1.txt -o 30 bkcrack 1.6.1 …

Lora理解

Parameter-Efficient Fine-Tuning (PEFT) :节约开销的做法,fine-tune少量参数,而不是整个模型; Low-Rank Adaptation (LoRA) :是PEFT的一种;冻结原参数矩阵,只更新2个小参数矩阵。

面了字节大模型算法岗,太难了。。。

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 汇总合集…

音视频开发9 FFmpeg 解复用框架--如何将一个影音文件(mp4文件/wav文件) 最终播放起来

一,播放器框架 二 常用音视频术语 容器/文件(Conainer/File): 即特定格式的多媒体文件, 比如mp4、flv、mkv等。 媒体流(Stream): 表示时间轴上的一段连续数据&#xff0…

基于maxkey接入jeecgboot并实现账户同步

1. 注册应用 1.1 在统一认证中心注册第三方应用 1.1.1 填写应用名和登录地址 1.1.2 填写认证地址授权方式和作用域 1.1.3 选择权限范围并提交 1.2 配置访问权限 1.2.1 指定用户组 1.1.2 选择注册的应用 1.1.3 在单点登录认证页面查看添加的应用 1.3 同步一个第三方应用的账号…

sqlserver的查询(三)

目录 10. group by(分组) 11. having(对分组后的信息过滤) 可能从这里开始,执行顺序越来越显得重要了!!! 10. group by(分组) 这个查询相比前面会有一些困难; 格式:group by 字段的集合; 功…

.NET调用阿里云人脸识别1:1简易流程保姆级教学

需要注意的是,以下内容仅限基础调用 人脸比对1:1 功能说明 该功能是两张照片对比,比对两张照片是不是同一个人,至于应用到什么场景,可以参考阿里云的官方文档,我这边以大学生项目来说的话,比如员工打卡&a…

实现销售与客流双增长!看看社区零售“排队王”如何成为顶流?

5月18日至5月26日,北京华联BHGMall燃情推出了一年一度的2024 Need(你的)BHGDay,接棒“五一”热潮,献礼“520”,通过韩式俯拍机、人生四宫格拍摄大赛、真合拍星派对、超级品牌日等丰富多彩的线上线下活动&am…

react实现动态增减表单项

在做项目的时候,甲方给的信息有限,网页的备案信息写成固定的,如下图所示 之后验收的时候,甲方要求把这个备案信息写成动态的,可以自增减,就去react组件库看看有没有具体的实现,果真有&#xff…

STM32_HAL__TIM_输出比较

概述 STM32的输出比较功能通常是指在微控制器的PWM(脉冲宽度调制)生成能力中的一个方面。STM32微控制器拥有一个或多个定时器/计数器,这些定时器/计数器可以用来生成PWM信号。PWM信号是一种重要的控制信号,广泛应用于电机控制、亮…

1分钟快速掌握JSON格式

文章目录 先说理论代码举例对象型数组型总结 先说理论 下面是JSON的几种简单数据类型: 数据类型描述数字型JavaScript中的双进度浮点类型,通常根据具体情况定义,这里是没有特殊的整形的。字符串型带双引号的Unicode,带反斜杠转义布尔型true…