Redis的使用(二)redis的命令总结

news2024/12/23 10:44:23

1.概述

这一小节,我们主要来研究一下redis的五大类型的基本使用,数据类型如下:

redis我们接下来看一看这八种类型的基本使用。我们可以在redis的官网查询这些命令:Commands | Docs,同时我们也可以用help 数据类型查看命令的帮助文档。

2. 常用命令的使用

可以用help generic查看一些基本命令的使用

2.1 查看redis中所有的key

KEYS pattern

比如:
KEYS user    //查看key为user的数据
KEYS *user*  //查看包含user的key

注:该命令会扫描redis里面所有的key,不建议在生产上使用。

2.2 删除指定的key

Del key1 key2 key3

2.3 判断某个key是否存在

EXISTS key

2.4 给key设置一个过期时间

EXPIRE key

2.5 查看key的过期时间

TTL key

2.5 更换库

select 库的编号

3. string类型

3.1 基本操作

3.1.1 增加一个1字符串

set key value

3.1.2 设置key以及超时时间

set key value ex 时间(单位秒)

3.1.3 不存在才能插入key

set key value nx

3.1.4 根据key获取字符串

get key

3.2 批量操作

3.2.1 更新多个key

mset key1 v1 key2 v2

3.2.2 获取多个key

mget key1 key2

3.3 数值操作

3.3.1 递增

incr key 

3.3.2 递减

decr key

3.3.3 增加某个数值

incrby key 数值

3.3.4 减少一个数值

decrby key 数值

3.4 复合操作

3.4.1 获取值后再更新

getset key value

3.4.2 不存在才能更新

setnx key value

3.4.3 更新值和超时时间

setex key 时间 value 

3.4.4 获取值后删除

getdel key

3.5 子字符串操作

3.5.1 获取key中字符串长度

strlen key

3.5.2 获取子字符串

getrange key 开始位置 结束位置

4. hash类型

4.1 基本操作

4.1.1 左侧依次插入多条元素

lpush key v1 v2

4.1.2 右侧插入多条元素

rpush key v1 v2

4.1.3 左侧弹出多个元素

lpop key 元素个数

4.1.4 右侧弹出多个元素

rpop key 元素个数

4.1.5 查看元素个数

llen key

4.1.6 查看list中的某个区间内的元素

lrange key 开始位置 结束位置

注意:lrange key 0 -1 表示查看list中所有数据 & 开始位置从0开始

4.1.7 根据索引获取某个元素

lindex key 索引

4.1.8 查找某个元素的位置

lpos 元素

4.2 阻塞队列

   在获取元素的时候,会一直等待,知道有元素返回或者超时,才会被唤醒,其实就是阻塞队列。

4.2.1 左侧插入元素

blpush key v1 v2

4.2.2 右侧插入元素

brpush key v1 v2

4.2.3 左侧弹出元素(可以监听多个list)

blpop key1 key2 超时等待时间

4.2.4 右侧弹出元素(可以监听多个list)

brpop key1 key2 超超时等待时间

4.3 复合操作

4.3.1 弹出key1左侧元素并从左侧插入到key2

lpushlpop key1 key2

4.3.2 左侧弹出key1左侧元素并从右侧插入到key2

lpushrpop key1 key2

4.3.3 弹出key1右侧元素并从左侧插入到key2

rpushlpop key1 key2

4.3.4 弹出key1右侧元素并从右侧插入到key2

rpushrpop key1 key2

4.3.5 从key1某侧弹出多个元素并放入到key2

lmove key1 key2 元素从哪边弹出(left/right) 元素从哪边插入(left/right)

注意:该命令为高版本命令

5. hash类型

5.1 基本操作

5.1.1 设置hash的某个key的某个field的值

hset key field value

5.1.2 获取hash的某个key的某个field的值

hget key field

5.1.3 判断某个key中的某个field是否存在

hexists key field

5.1.4 如果某个key中的某个field不存在才能插入

hsetnx key field value

5.1.5 删除某个key的某个field

del key field

5.2 递增操作

hash里面也可以存储数值

5.2.1 增加整数

hincrby key 整数

5.2.2 增加小数

hincrbyfloat key 小数

5.3 批量操作

5.3.1 查看hash中的所有key和value

hgetall key

5.3.2 查看所有key

hkeys key

5.3.3 查看所有的value

hvals key

注意:上面三个命令不能再生产上面随便使用,会阻塞redis。

5.3.4 查看redis中部分数据

hscan key cursor 

注意:hscan 会将一个hash拆成多份内容,一次返回其中一份,这样就不会阻塞redis

6. set类型

6.1 基本操作

6.1.1 添加多个元素到set

sadd key val1 val2

6.1.2 获取set中所有元素

smembers key

6.1.3 判断元素是否在set里

sismember key val

6.1.4 获取set元素个数

scard key

6.1.5 随机从set中获取一个元素

spop key

6.1.6 把一个元素从一个set挪到另一个set

smove key1 key2 val

6.1.7 从集合中删除多个元素

srem key val1 val2

6.2 集合操作

6.2.1 求两个集合交集

sinner key1 key2

6.2.2 求两个集合差集

sdiff key1 key2

6.2.3 求两个集合并集

sunion key1 key2

7. sorted set类型

sorted set相当于java中的hashset,只是它是按照score进行排序。

7.1 基本操作

7.1.1 添加元素

zadd key score1 val1 score2 val2

7.1.2 查询元素个数

zcard key

7.1.3 查询元素的score1到score2 范围内的个数

zcount key score1 score2

7.1.4 查询元素的score

zscore key

7.1.5 查询元素排在第几位

zrank key val1

7.1.6 增加元素的分数

zincrby key 增加的分数 val

7.1.7 弹出score最大的元素

zpopmax key

7.1.8 弹出score最小的元素

zpopmin key

7.1.9 打印score在某个范围内的元素

zrange key score1 score2 byscore withscores

7.1.10 查看某个元素的排名

zrank key val

7.2 集合操作

7.2.1 交集

zinter key1 key2

7.2.2 差集

zdiff key1 key2

7.2.3 并集

zunion key1 key2

8. bitmap类型

8.1 基本操作

8.1.1 设置某位的值

setbit key offset val

8.1.2 获取某位的值

getbit key offset

8.1.3 统计1的个数

bitcount key 开始位置 结束位置

8.1.4 位运算

bitop (or/and/xor/not) destkey key1 key2

8.1.5 查找第一个出现该位元素的位置

bitpos key 元素值 开始位置 结束位置

9. geo类型

9.1 基本操作

9.1.1 添加地理元素

GEOADD key longitude latitude member [longitude latitude member ...]

9.1.2 返回元素的经纬度

geopos key member1 member2

9.1.3 返回两点间的距离

GEODIST key member1 member2 [m|km|ft|mi]

10. HyperLogLog类型

hyperLogLog主要是用来统计一堆元素的基数的数据类型,基数就是这堆元素里面不重复的元素个数。

10.1 基本操作

10.1.1 添加元素

pfadd key val1 val2

10.1.2 统计基数个数

pfcount key 

10.1.3 合并两个hyperLogLog

pfmerge destkey key1 key2

11. 总结

本文主要是介绍redis的五大数据类型和三中扩展类型的基本使用,无外乎增删改查再加上集合之间操作。

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

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

相关文章

新鲜出炉!恭喜这 5 位同学中选 NebulaGraph 社区 2024 开源之夏项目!

开源之夏是中国科学院软件研究所发起的“开源软件供应链点亮计划”系列暑期活动,旨在鼓励高校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。活动联合各大开源社区,针对重要开源软件的开发与维护提供项目开发任务&#xf…

【JPCS出版,PSESG 2024,8月16-18】2024年电力系统工程与智能电网国际学术会议

2024年电力系统工程与智能电网国际学术会议(PSESG 2024)于2024年8月16-18日在中国北京隆重召开。 会议旨在为从事“电力系统工程”、“智能电网”、“储能技术”等领域的专家学者、工程技术人员、研发人员提供一个共享科研成果和前沿技术,了解学术发展趋势&#xf…

linux的Top学习

学习文档 https://www.cnblogs.com/liulianzhen99/articles/17638178.html TOP 问题 1:top 输出的利用率信息是如何计算出来的,它精确吗? top 命令访问 /proc/stat 获取各项 cpu 利用率使用值内核调用 stat_open 函数来处理对 /proc/sta…

PMP通过率为什么高?

很多人在初步了解PMP的时候,都会考虑到PMP考试的难度以及通过率,继而在网上查询到很多资料后,都会发现,其实PMP的国内通过率一直都是很高的。 通过率高≠含金量低 看到PMP的通过率这么高,很多人觉得证书的水分很大&a…

鼠标连点器:解放双手的自动化效率神器,鼠标自动快速连点!

日常使用电脑整理工作时,总会做一些重复的工作,比如:刷题、做任务、浏览多张图片、浏览多个文件等。这些操作的工作量在于鼠标左键,需要一直重复的点,略微有些枯燥了。 面对重复且枯燥的工作,我们可以借助第…

Windows系统安装NVM,实现Node.js多版本管理

目录 一、前言 二、NVM简介 三、准备工作 1、卸载Node 2、创建文件夹 四、下载NVM 五、安装NVM 六、使用NVM 1、NVM常用操作命令 2、查看NVM版本信息 3、查看Node.js版本列表; 4、下载指定版本Node.js 5、使用指定版本Node.js 6、查看已安装Node.js列…

快速入门FreeRTOS心得(正点原子学习版)

对于FreeROTS,我第一反应想到的就是通信里的TDM(时分多址)。不同任务给予分配不同的时间间隔,也就是任务之间在每个timeslot都在来回切换。 这里有重要的一点,就是中断要短小,优先级是自高到底进行打断。 …

如何避免删库跑路?

如何避免删库跑路,这几乎是一个老生常谈的话题,也是大部分上了规模的企业都很关心的话题,京东到家、微盟、链家、思科... 在这些大企业上发生过的删库事件仍然历历在目,无论是否当事人有意为之还是系统 BUG 导致,造成的…

vue-advanced-chat 聊天控件的使用

测试代码:https://github.com/robinfoxnan/vue-advanced-chat-test0 控件源码:https://github.com/advanced-chat/vue-advanced-chat 先上个效果图: 这个控件就是专门为聊天而设计的,但是也有一些不足: 1&#xf…

国际数字影像产业园:汇聚全球力量,共绘影像新蓝图

在数字化浪潮席卷全球的今天,我们自豪地宣布,国际数字影像产业园已正式起航,以全球视野为引领,致力于推动数字影像产业的创新发展,引领全球潮流。 一、汇聚全球智慧 国际数字影像产业园以开放包容的姿态,汇…

MIX OTP——使用 ETS 加速

每次我们需要查找存储容器时,我们都需要向注册表发送一条消息。如果我们的注册表被多个进程同时访问,注册表可能会成为瓶颈! 在本章中,我们将了解 ETS(Erlang Term Storage)以及如何将其用作缓存机制。 警…

【信息系统项目管理师】常见图表

作文里面的画图题用语言描述画图过程 合同 采购综合评分标准 责任分配矩阵 成本预算表 成本估算 成本管理计划 活动清单 活动属性 变更日志 问题日志 项目章程 自己再添加更多内容 甘特图 甘特图包含以下三个含义: 1、以图形或表格的形式显示活动; 2、…

JavaScript中window对象 , location对象以及history对象使用方法详细介绍

2.BOM(Browser Object Model) 操作浏览器的。常用的浏览器对象: 1.window对象:Window 对象表示浏览器中打开的窗口。 2.location对象:Location 对象包含有关当前 URL 的信息。Location 对象是 window 对象的一部分&…

[PyTorch]:加速Pytorch 模型训练的几种方法(几行代码),最快提升八倍(附实验记录)

本篇文章转自:Some Techniques To Make Your PyTorch Models Train (Much) Faster 本篇博文概述了在不影响 PyTorch 模型准确性的情况下提高其训练性能的技术。为此,将 PyTorch 模型包装在 LightningModule 中,并使用 Trainer 类来实现各种训…

使用 Python 五年后,我发现学 python 必看这三本书!少走一半弯路

第一本 《Python编程-从入门到实践》 适合零基础的读者 豆瓣评分:9.1 推荐指数:5颗星 推荐理由: 本书是针对所有层次的 Python 读者而作的 Python 入门书。全书分为两部分: 第一部分介绍使用Python 编程所必须了解的…

将excel表格转换为element table(上)

最近有个功能需要将excel展示到html 界面里面,看是简单的一个需求也是需要费尽心思才完得成 原始数据 想要把excel 读取出来,于是使用xlsl的插件 npm i xlsx通过插件可以获取到已经分析好的数据 然后使用sheet_to_html将数据转换为html 再使用v-htm…

ROS2 RQT

1. RQT是什么 RQT是一个GUI框架,通过插件的方式实现了各种各样的界面工具。 强行解读下:RQT就像插座,任何电器只要符合插座的型号就可以插上去工作。 2.选择插件 这里我们可以选择现有的几个RQT插件来试一试,可以看到和话题、参…

视频太大怎么压缩变小?6款视频压缩软件免费版分享

视频太大怎么压缩得又小又清晰呢?无论是视频文件传输、视频文件存储,还是进行自媒体视频上传,都对视频文件的大小有一定的限制。高质量的视频文件往往伴随着文件占据大量存储空间,导致文件传输速度变慢。今天教大家6种视频压缩软件…

配置WLAN 示例

规格 仅AR129CVW、AR129CGVW-L、AR109W、AR109GW-L、AR161W、AR161EW、AR161FGW-L、AR161FW、AR169FVW、AR169JFVW-4B4S、AR169JFVW-2S、AR169EGW-L、AR169EW、AR169FGW-L、AR169W-P-M9、AR1220EVW和AR301W支持WLAN-FAT AP功能。 组网需求 如图1所示,企业使用WLAN…

搜维尔科技:数据手套为什么要选择SenseGlove

了解 SenseGlove SenseGlove 是一支由电子工程师、触觉研究人员和计算机视觉专家、XR 开发人员、UX 设计师和产品创新者组成的科幻爱好者团队,他们拥有丰富人类能力和赋予 Metaverse 意义的技能和热情。 推进触觉技术是我们实现这一目标的方式。 公司及产品背景 S…