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

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.mfbz.cn/a/766069.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【漏洞复现】D-Link NAS 未授权RCE漏洞(CVE-2024-3273)

0x01 产品简介 D-Link 网络存储 (NAS)是中国友讯(D-link)公司的一款统一服务路由器。 0x02 漏洞概述 D-Link NAS nas_sharing.cgi接口存在命令执行漏洞,该漏洞存在于“/cgi-bin/nas_sharing.cgi”脚本中,影响其 HTTP GET 请求处…

STM32F1+HAL库+FreeTOTS学习3——任务创建(动态和静态两种)

STM32F1HAL库FreeTOTS学习3——任务创建(动态和静态两种) 任务创建API函数任务创建流程代码实现1. 动态任务创建和删除2. 静态任务创建和删除 上期我们学习了STM32移植FreeRTOS搭建基准工程,现在我们来学习任务创建 任务创建API函数 前面我们…

大数据可视化实验(八):大数据可视化综合实训

目录 一、实验目的... 1 二、实验环境... 1 三、实验内容... 1 1)Python纵向柱状图实训... 1 2)Python水平柱状图实训... 3 3)Python多数据并列柱状图实训.. 3 4)Python折线图实训... 4 5)Python直方图实训...…

Redis---保证主从节点一致性问题 +与数据库数据保持一致性问题

保证主从节点一致性问题 Redis的同步方式默认是异步的,这种异步的同步方式导致了主从之间的数据存在一定的延迟,因此Redis默认是弱一致性的。 解决: 1.使用Redisson这样的工具,它提供了分布式锁的实现,确保在分布式环…

搭贝这个低代码开发平台靠谱吗?

在应用开发领域,低代码开发平台因其拖拽式的操作给用户带来了极大的便利和灵活性。根据相关调查数据,2022年国内低代码开发平台已超过100家。搭贝在众多低代码平台中也享有一定的知名度。那么,搭贝究竟怎么样,是否值得信赖&#x…

Dify入门指南

一.Dify介绍 生成式 AI 应用创新引擎,开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用,比 LangChain 更易用。一个平台,接入全球大型语言模型。不同…

IDEA Debug 断点

今天在工作发现有些新入职的小伙伴们,在调试程序时不是很会正确使用IDEA所提供Breakpoints(断点),这里就简单的介绍下比较常用的功能。 快捷键: 切换行断点:Ctrl F8 编辑断点属性:Ctrl Shift F8 断点的类型 行断点&am…

Google地图获取位置的前端代码与测试

test.html <script src"http://maps.google.com/maps/api/js?sensorfalse"></script> <script > if (navigator.geolocation) {  console.log(Geolocation is supported!);// var startPos;var geoSuccess function(position) {startPos p…

Codeforces Round 954 (Div. 3)(A~E)

目录 A. X Axis B. Matrix Stabilization C. Update Queries D. Mathematical Problem A. X Axis Problem - A - Codeforces 直接找到第二大的数&#xff0c;答案就是这个数与其他两个数的差值的和。 void solve() {vector<ll>a;for (int i 1; i < 3; i){int x;…

【C++知识点总结全系列 (02)】:C++中的语句、运算符和表达式详细总结

文章目录 1、语句(1)简单语句A.空语句B.复合语句 (2)条件语句(3)迭代语句A.常规for循环B.范围for循环C.while和do...while (4)跳转语句A.break语句B.continue语句C.goto语句 (5)异常处理语句A.标准异常B.throw抛出异常 (6)try语句 2、运算符(1)算术运算符(2)关系运算符(3)逻辑运…

Java Character类

Character是char的包装类 转义序列 Character类的方法

SpringSecurity中文文档(Servlet Persisting Authentication)

Persisting Authentication 用户第一次请求受保护的资源时&#xff0c;系统会提示他们输入凭据。提示凭据的最常见方法之一是将用户重定向到登录页。对于请求受保护资源的未经身份验证的用户&#xff0c;总结的 HTTP 交换可能如下所示: Example 1. Unauthenticated User Requ…

机器人控制系列教程之Simulink中模型搭建(1)

机器人模型获取 接上期&#xff1a;机器人控制系列教程之控制理论概述&#xff0c;文中详细讲解了如何通过Solidworks软件导出URDF格式的文件。文末提到了若需要将其导入到Simulink中可在命令行中输入smimport(urdf/S_Robot_urdf.urdf)&#xff0c;MATLAB将自动打开Simulink以…

【揭秘】国内十大顶尖AI大模型,引领智能科技新纪元

大模型大模型通常指的是参数量非常大、数据量也非常大的深度学习模型。这些模型由数百万到数十亿甚至更多的参数组成&#xff0c;需要海量的数据和强大的计算资源进行训练和推理学习的模型。大模型设计的目的在于提高模型的表示能力和性能、应对复杂数据集和任务、提升泛化能力…

65.WEB渗透测试-信息收集- WAF、框架组件识别(5)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;64.WEB渗透测试-信息收集- WAF、框架组件识别&#xff08;4&#xff09;-CSDN博客 waf绕…

c语言的烫烫烫烫烫??

当初学习C语言时&#xff0c;对于一些特殊的打印输出可能会感到困惑&#xff0c;比如会出现一堆乱码烫烫烫的情况。其实这是因为在C语言中&#xff0c;对于字符类型和数字类型之间的隐式转换可能会导致打印输出的结果不符合预期。这并不意味着程序员"烫"&#xff0c;…

详解归一化、标准化、正则化以及batch normalization

文章目录 what(是什么)where&#xff08;用在哪&#xff09;How&#xff08;如何用&&原理&#xff09;归一化实现方式原理示例说明 标准化实现方式原理示例说明 正则化实现方式原理作用 Batch Normalizationpytorch中的batch normalization原理BN的作用 归一化、标准化…

EXCEL怎么一模一样复制粘贴?

第一步 鼠标选中复制子表 右击建立副本 第二步 建立好副本表格 第三步 将选定工作表移动至新表格 第四步 成功完成移动

社区的用户分层运营如何做?

在社区运营中用户分层尤为关键&#xff0c;20%的高粘性用户带动80%的普通用户。我们主要围绕的是这20%的粘性用户&#xff0c;因为他们才是决定我们未来能不能最好做大最重要的人 分层运营策略 1️⃣对普通用户&#xff1a; &#x1f4da;满意&#xff1a;搜索是内容多而全&…

数据结构 -AVL树

文章目录 AVL树左旋和右旋插入的四种情况&#xff08;一&#xff09;新数字插到了左子树&#xff0c;导致左子树比右子树高2&#xff1b;左孩子的左子树比其右子树高1&#xff08;二&#xff09;新数字插到了左子树&#xff0c;导致左子树比右子树高2&#xff1b;左孩子的右子树…