第一节:Redis的数据类型和基本操作
最近整理了关于Redis的一些文档,分享给大家,后续会持续更新......
-
- Redis的数据类型
- 字符串String
- Redis的数据类型
String:字符串,可以存储String、Integer、Float型的数据,甚至是二进制数据,一个字符串最大容量是512M
-
-
- 列表List
-
List:字符串List,底层实现上不是数组,而是链表,也就是说在头部和尾部插入一个新元素,其时间复杂度是常数级别的;其弊端是:元素定位比数组慢
-
-
- 集合Set
-
Set:字符串Set,无序不可重复,是通过HashTable实现的
-
-
- 哈希Hash
-
Hash:按Hash方式来存放字符串
-
-
- 有序集合ZSet
-
ZSet:字符串Set,有序且不可重复,根据Score来排序。底层使用散列表和跳跃表来实现,所以读取中间部分数据也很快
-
- Redis的基本操作
- Keys常用操作命令
- Redis的基本操作
- Keys:获得符合规则的键名列表
- 格式是keys pattern,pattern支持glob风格通配符格式:
- (1)? 匹配一个字符
- (2)* 匹配任意个字符
- (3)[] 匹配中括号内的任一字符,可以用-来表示一个范围
- (4)\x 匹配字符x,用于转义符号
- exists:判断键值是否存在,格式是exists key
- del:删除key,格式是del key。
小技巧:Del命令不支持通配符,可以结合linux管道和xargs命令来自定义
删除,示例如下:redis-cli keys k* | xargs redis-cli del
- type:获得键值的数据类型,格式是type key
- rename:改名,格式是rename oldKey newKey
- renamenx:如果不存在则改名,格式是rename oldKey newKey
-
- 处理过期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值 到毫秒的时间戳
-
-
- 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
-
-
- 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 定位查找的值 添加的值
-
-
- 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
-
-
- 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 项的值
-
-
- 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]
。
相关文章:

第一节:Redis的数据类型和基本操作
最近整理了关于Redis的一些文档,分享给大家,后续会持续更新...... Redis的数据类型 字符串String String:字符串,可以存储String、Integer、Float型的数据,甚至是二进制数据,一个字符串最大容量是512M 列表…...

组件的传参等
一:组件的生命周期函数 组件的生命周期函数: created只是创建了组件内的实例对象 attached,给组件实例绑定了属性,绑定到页面节点树之后 ready准备好渲染之后,还未渲染之前 moved组件实例被移动到另一个位置后执行 detached在整个组件被被移除执行 error执行的时候,组件内…...

构建php环境、安装、依赖、nginx配置、ab压力测试命令、添加php-fpm为系统服务
目录 php简介 官网php安装包 选择下载稳定版本 (建议使用此版本,文章以此版本为例) 安装php解析环境 准备工作 安装依赖 zlib-devel 和 libxml2-devel包。 安装扩展工具库 安装 libmcrypt 安装 mhash 安装mcrypt 安装php 选项含…...

服装服饰商城小程序的作用是什么
要说服装商家,那数量是非常多,厂家/经销门店/小摊/无货源等,线上线下同行竞争激烈,虽然用户群体广涵盖每个人,但每个商家肯定都希望更多客户被自己转化,渠道运营方案营销环境等不可少。 以年轻人为主的消费…...

HNU-计算机体系结构-实验2-Tomasulo算法
计算机体系结构 实验2 计科210X 甘晴void 202108010XXX 1 实验目的 熟悉Tomasulo模拟器同时加深对Tomasulo算法的理解,从而理解指令级并行的一种方式-动态指令调度。 掌握Tomasulo算法在指令流出、执行、写结果各阶段对浮点操作指令以及load和store指令进行什么…...

深入分析 Android Activity (一)
文章目录 深入分析 Android Activity (一)1. Activity 的窗口管理2. Activity 的生命周期管理onCreateonStartonResumeonPauseonStoponDestroyonRestart 3. Activity 与 Fragment 的交互添加 FragmentFragment 的生命周期 4. Activity 的任务和返回栈5. 配置变化处理 总结 深入…...

Python 调整PDF文件的页面大小
在处理PDF文件时,我们可能会遇到这样的情况:原始PDF文档不符合我们的阅读习惯,或者需要适配不同显示设备等。这时,我们就需要及时调整PDF文档中的页面尺寸,以满足不同应用场景的需求。 利用Python语言的高效性和灵活性…...

支付功能、支付平台、支持渠道如何测试?
有学员提问:作为一个支付平台,接入了快钱、易宝或直连银行等多家的渠道,内在的产品流程是自己的。业内有什么比较好的测试办法,来测试各渠道及其支持的银行通道呢? 作为产品,我自己办了十几张银行卡方便测…...
永久代(Permanent Generation)和元空间(Metaspace)
永久代(Permanent Generation)和元空间(Metaspace)是Java虚拟机(JVM)内存管理中的两个概念,主要区别在于它们的实现方式和内存分配策略。 永久代(Permanent Generation)…...
前端面试题23-34
23. 说说你对 Promise 的理解 Promise 是 ECMAScript6 引入的一种异步编程解决方案,用于处理异步操作。它表示一个尚未完成但最终会结束的操作,具有三种状态:pending(进行中)、fulfilled(已完成࿰…...

Hadoop3:HDFS中DataNode与NameNode的工作流程
一、DataNode中的数据情况 数据位置 /opt/module/hadoop-3.1.3/data/dfs/data/current/BP-823420375-192.168.31.102-1714395693863/current/finalized/subdir0/subdir0块信息 每个块信息,由两个文件保存,xxx.meta保存的是数据长度、校验和、时间戳&am…...

MySQL(一) 库和表的基础操作
1. 数据库基础 1.1 什么是数据库 存储数据用文件就可以了,为什么还要弄个数据库? 文件保存数据有以下几个缺点: 文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便 数据库存储介质:磁盘内存 为了解…...
python -【二】判断语句
判断语句 一、 布尔类型 True:真(1)False:假(0) 比较运算符 运算符实例1 1 True!1 ! 1 Flase<1 < 1 Flse>1 > 1 Flse<1 < 1 True>1 > 1 True b1 True b2 False print(f"b1值是{b1},类型是{type(b1)}") print(…...

高通Android 12/13 设置和获取ADB状态
/*** 设置ADB状态** param isEnable*/public void setADB(boolean isEnable) {Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.ADB_ENABLED, isEnable ? 1 : 0);}/*** 获取ADB状态** return*/public boolean getADB() {return Settings.Global.getIn…...

存储器和CPU的连接与TCP的流量控制
存储器与CPU的连接 存储容量的拓展 (1)位拓展:增加存储字长 (2)字拓展 增加存储器字的数量 例题:设CPU有16根地址线,8根数据线,并用MREQ作为访问存储控制信号(低电平有效),WR作为…...

红蓝对抗提权篇之一文看懂提权
一、计算机中的权限 1.1 不同的权限系统 权限在不同的应用中有着不同的分类,与安全相关的大致上我们分为: 匿名访问权限 来宾权限 用户权限 管理员权限 系统权限 不同的权限对应的权力各不相同,我们对自己电脑一般是用户权限和管理员权限。…...

【Tlias智能学习辅助系统】01 准备工作
Tlias智能学习辅助系统 01 创建员工、部门表创建springboot工程,引入对应的起步依赖(web、mybatis、mysql驱动、lombok)准备 Mapper、Service、Controller 等基础结构MapperServiceControllerpojo封装类application.properties 接口开发规范 创建员工、部门表 -- 创…...

yq—2024/5/29—零钱兑换
代码实现: #define min(a, b) ((a) > (b) ? (b) : (a))int coinChange(int *coins, int coinsSize, int amount) {int dp[amount 1];// 初始化for (int i 0; i < amount 1; i) {dp[i] INT32_MAX;}dp[0] 0;// 01背包 -----先遍历物品,再遍历背…...
【 Quartz框架中各个表及其字段含义】
Quartz框架中各个表及其字段含义 Quartz是一个强大的任务调度框架,它通过在数据库中维护多张表来存储和管理任务信息。了解这些表的结构和字段含义,有助于我们更好地理解Quartz的工作原理,并在实际应用中进行有针对性的优化和管理。 想了解Quartz框架其他信息可以参考下面的博…...

SAP_SD模块 物料科目分配/成本简介
SAP系统各模块与财务都有个方面的集成。文本主要说明销售模块中的科目分配和成本的一个对应关系。 1、首先是在物料主数据上销售视图中的物料科目分配组,S1主营、S2材料等字段,物料销售的时候会将这个物料产生的记录到对应的科目中。 首先是物料主数据中…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...