redis从入门到进阶——数据类型、 操作、数值操作、发布订阅、消息队列、布隆过滤器、事务
文章目录
- 基础
- 数据类型
- 操作
- 数值操作
- 进阶
- 发布订阅
- 消息队列
- 布隆过滤器
- 事务
基础
数据类型
string,set, hash, list, zset
操作
- string符串类型:
保存一个字符串:set key value [EX seconds|PX milliseconds...] [NX|XX]EX:设置存活时间,秒为单位PX:设置存活时间,毫秒为单位NX:如果key不存在,则设置key valueXX:如果key存在,则重新设置value
保存多个字符串:mset key value [key value...]
获取值:get key
- hash散列:
保存一个对象:hmset key field value [field value field value ...]
获取对象单个属性值:hget key field
获取对象所有值:hgetall key
- list列表:
添加元素:lpush key value [value ...]
从右侧尾部添加元素:rpush key value
在指定元素value前插入元素:linsert key before value value2
获取元素:lrange key start end (0 3)
从左侧弹出元素:lpop key
从右侧弹出元素:rpop key
- set无序集合:单个添加得元素会无序排列
添加元素:sadd key value [value...]获取元素:smembers key
- zset有序集合:
添加元素:zadd key score value
获取分值:zscore key value
获取元素:zrange key start end
| 命令 | 说明 |
|---|---|
| SET key value | 用于设定指定键的值。 |
| GET key | 用于检索指定键的值。 |
| GETRANGE key start end | 返回 key 中字符串值的子字符。 |
| GETSET key value | 将给定 key 的值设置为 value,并返回 key 的旧值。 |
| GETBIT key offset | 对 key 所存储的字符串值,获取其指定偏移量上的位(bit)。 |
| [MGET key1 key2…] | 批量获取一个或多个 key 所存储的值,减少网络耗时开销。 |
| SETBIT key offset value | 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。 |
| SETEX key seconds value | 将值 value 存储到 key中 ,并将 key 的过期时间设为 seconds (以秒为单位)。 |
| SETNX key value | 当 key 不存在时设置 key 的值。 |
| SETRANGE key offset value | 从偏移量 offset 开始,使用指定的 value 覆盖的 key 所存储的部分字符串值。 |
| STRLEN key | 返回 key 所储存的字符串值的长度。 |
| [MSET key value key value …] | 该命令允许同时设置多个键值对。 |
| [MSETNX key value key value …] | 当指定的 key 都不存在时,用于设置多个键值对。 |
| PSETEX key milliseconds value | 此命令用于设置 key 的值和有过期时间(以毫秒为单位)。 |
| INCR key | 将 key 所存储的整数值加 1。 |
| INCRBY key increment | 将 key 所储存的值加上给定的递增值(increment)。 |
| INCRBYFLOAT key increment | 将 key 所储存的值加上指定的浮点递增值(increment)。 |
| DECR key | 将 key 所存储的整数值减 1。 |
| DECRBY key decrement | 将 key 所储存的值减去给定的递减值(decrement)。 |
| APPEND key value | 该命令将 value 追加到 key 所存储值的末尾。 |
| 命令 | 说明 |
|---|---|
| [LPUSH key value1 value2] | 在列表头部插入一个或者多个值。 |
| LRANGE key start stop | 获取列表指定范围内的元素。 |
| RPUSH key value1 [value2] | 在列表尾部添加一个或多个值。 |
| LPUSHX key value | 当储存列表的 key 存在时,用于将值插入到列表头部。 |
| RPUSHX key value | 当存储列表的 key 存在时,用于将值插入到列表的尾部。 |
| LINDEX key index | 通过索引获取列表中的元素。 |
| LINSERT key before|after pivot value | 指定列表中一个元素在它之前或之后插入另外一个元素。 |
| LREM key count value | 表示从列表中删除元素与 value 相等的元素。count 表示删除的数量,为 0 表示全部移除。 |
| LSET key index value | 表示通过其索引设置列表中元素的值。 |
| LTRIM key start stop | 保留列表中指定范围内的元素值。 |
| LPOP key | 从列表的头部弹出元素,默认为第一个元素。 |
| RPOP key | 从列表的尾部弹出元素,默认为最后一个元素。 |
| LLEN key | 用于获取列表的长度。 |
| RPOPLPUSH source destination | 用于删除列表中的最后一个元素,然后将该元素添加到另一个列表的头部,并返回该元素值。 |
| [BLPOP key1 key2 ] timeout | 用于删除并返回列表中的第一个元素(头部操作),如果列表中没有元素,就会发生阻塞, 直到列表等待超时或发现可弹出元素为止。 |
| [BRPOP key1 key2 ] timeout | 用于删除并返回列表中的最后一个元素(尾部操作),如果列表中没有元素,就会发生阻塞, 直到列表等待超时或发现可弹出元素为止。 |
| BRPOPLPUSH source destination timeout | 从列表中取出最后一个元素,并插入到另一个列表的头部。如果列表中没有元素,就会发生 阻塞,直到等待超时或发现可弹出元素时为止。 |
| 命令 | 说明 |
|---|---|
| [HDEL key field2 field2] | 用于删除一个或多个哈希表字段。 |
| HEXISTS key field | 用于确定哈希表字段是否存在。 |
| HGET key field | 获取 key 关联的哈希字段的值。 |
| HGETALL key | 获取 key 关联的所有哈希字段值。 |
| HINCRBY key field increment | 给 key 关联的哈希字段做整数增量运算 。 |
| HINCRBYFLOAT key field increment | 给 key 关联的哈希字段做浮点数增量运算 。 |
| HKEYS key | 获取 key 关联的所有字段和值。 |
| HLEN key | 获取 key 中的哈希表的字段数量。 |
| HMSET key field1 value1 [field2 value2 ] | 在哈希表中同时设置多个 field-value(字段-值) |
| HMGET key field1 [field2] | 用于同时获取多个给定哈希字段(field)对应的值。 |
| HSET key field value | 用于设置指定 key 的哈希表字段和值(field/value)。 |
| HSETNX key field value | 仅当字段 field 不存在时,设置哈希表字段的值。 |
| HVALS key | 用于获取哈希表中的所有值。 |
| HSCAN key cursor | 迭代哈希表中的所有键值对,cursor 表示游标,默认为 0。 |
数值操作
INCR命令:
如果key不存在就自动创建key,并将value初始化为1. incr key
DECR命令:与incr相反
decr key
INCRBY命令:
每次增加increment增量:incrby key increment
DECRBY命令:
每次减少decrement减量:decrby key decrement
INCRBYFLOAT命令:
可以操作浮点数得命令,浮点数可正可负从而实现对数值得增减:incrbyfloat key increment
进阶
发布订阅
subscribe订阅频道:
订阅:subscribe key
publish发布消息:
发布消息:publish key message
| 命令 | 说明 |
|---|---|
| PSUBSCRIBE pattern [pattern …] | 订阅一个或多个符合指定模式的频道。 |
| PUBSUB subcommand [argument [argument …]] | 查看发布/订阅系统状态,可选参数 1) channel 返回在线状态的频道。 2) numpat 返回指定模式的订阅者数量。 3) numsub 返回指定频道的订阅者数量。 |
| PUBSUB subcommand [argument [argument …]] | 将信息发送到指定的频道。 |
| PUNSUBSCRIBE [pattern [pattern …]] | 退订所有指定模式的频道。 |
| SUBSCRIBE channel [channel …] | 订阅一个或者多个频道的消息。 |
| UNSUBSCRIBE [channel [channel …]] | 退订指定的频道。 |
消息队列
布隆过滤器
http://c.biancheng.net/redis/bloom-filter.html
事务
| 命令 | 说明 |
|---|---|
| MULTI | 开启一个事务 |
| EXEC | 执行事务中的所有命令 |
| WATCH key [key …] | 在开启事务之前用来监视一个或多个key 。如果事务执行时这些 key 被改动过,那么事务将被打断。 |
| DISCARD | 取消事务。 |
| UNWATCH | 取消 WATCH 命令对 key 的监控。 |
相关文章:
redis从入门到进阶——数据类型、 操作、数值操作、发布订阅、消息队列、布隆过滤器、事务
文章目录 基础数据类型操作数值操作 进阶发布订阅消息队列布隆过滤器事务 基础 数据类型 string,set, hash, list, zset 操作 string符串类型: 保存一个字符串:set key value [EX seconds|PX milliseconds...] [NX|XX]EX:设置…...
剖析 Kafka 消息丢失的原因
文章目录 前言一、生产者导致的消息丢失的场景场景1:消息太大解决方案 :1、减少生产者发送消息体体积2、调整参数max.request.size 场景2:异步发送机制解决方案 :1、使用带回调函数的发送方法 场景3:网络问题和配置不当…...
阿里又出AI神器,颠覆传统图像编辑,免费开源!
文章首发于公众号:X小鹿AI副业 大家好,我是程序员X小鹿,前互联网大厂程序员,自由职业2年,也一名 AIGC 爱好者,持续分享更多前沿的「AI 工具」和「AI副业玩法」,欢迎一起交流~ 最近阿里开源了 Mi…...
git 大文本上传和下载git-lfs
1. ubuntu 1)下载脚本来自动化配置系统上的包存储库,导入签名密钥等过程。这些脚本必须在root下运行。 # apt/deb repos: curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash # curl -s https://packag…...
Ps:脚本与动作
有三种脚本语言可用于编写 Photoshop 脚本:AppleScript(macOS)、JavaScript 和 VBScript(Windows)。 Photoshop 脚本文件默认文件夹 Win:C:\Program Files\Adobe\Adobe Photoshop 2024\Presets\Scripts Mac…...
MySQL数据库回顾(1)
数据库相关概念 关系型数据库 概念: 建立在关系模型基础上,由多张相互连接的二维表组成的数据库。 特点: 1.使用表存储数据,格式统一,便于维护 2.使用SQL语言操作,标准统一,使用方便 SOL SQL通用语法 …...
文字炫酷祝福 含魔法代码
效果下图:(可自定义显示内容) 代码如下: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initi…...
docker容器中连接宿主机mysql数据库
最近要在docker中使用mysql数据库,首先考虑在ubuntu的镜像中安装mysql,这样的脚本和数据库都在容器中,直接访问localhost:3306,脚本很简单,如下: import pymysql# 建立数据库连接 db pymysql.…...
Leetcode 41. 缺失的第一个正数
41. 缺失的第一个正数 - 力扣(LeetCode) class Solution {/**2024.6.18首先把小于等于0和大于n的全部标记成n1,这些数据不会是答案;把出现的数字标记为负数,比如数字3,那就是nums[2]-nums[2];下次从头遍历…...
MyBatis 自定义映射 ResultMap:字段与属性的映射详解
在 MyBatis 框架中,ResultMap是一个非常强大的功能,它允许我们自定义SQL查询结果与Java对象之间的映射关系。特别是在数据库字段名和Java对象属性名不一致时,ResultMap能够帮助我们精确地映射数据。 ResultMap 的基本使用 若字段名和实体类…...
找单身狗2
找单身狗2 之前遇到类似的题目的思路: 首先写出这些数的二进制形式: 核心原理 接下来的问题是怎么把5和6分开来? 这里是最后一位进行比较,按位异或是相同为0,相异为1,最后一位从上图看出是1,说…...
element-ui将组件默认语言改为中文
在main.js中加入以下代码即可 // 引入 Element Plus 及其样式 import ElementPlus from element-plus import element-plus/dist/index.css// 引入中文语言包 import zhCn from element-plus/es/locale/lang/zh-cn// 使用 Element Plus 并设置语言为中文 app.use(ElementPlus,…...
SuperMap iClient3D 11i(2023) SP1 for Cesium 调整
SuperMap iClient3D 11i(2023) SP1 for Cesium 最新版本 下载地址 SuperMap技术资源中心|为您提供全面的在线技术服务 每一次版本升级,都要对代码进行修改调整,都是为了解决功能需求。当然,也为产品做了小白鼠测试,发现bug,优化功能。 由于前端开发使用的是dojo框架,类…...
保姆级小白就业人工智能(视频+源码+笔记)
🍅我是小宋, Java学习AI,记录学习之旅。关注我,带你轻松过面试。提升简历亮点(14个demo) 🍅我的java面试合集已有12W 浏览量。🌏号:tutou123com。拉你进专属群。 ⭐⭐你的…...
微信小程序,分享和反馈功能
<button type"primary" open-type"share">分享</button> <button type"primary" open-type"feedback">反馈</button>...
数据安全未来之路,天空卫士荣誉领榜《中国数据安全50强(2024)》
《中国数据安全50强(2024)》 数世咨询首份《中国数据安全50强(2024)》报告发布。天空卫士凭借其卓越的技术创新、市场领导力、业务收入能力和企业发展能力,在众多竞争者中脱颖而出,荣登50强榜单࿰…...
CAD二次开发(10)-单行文字的添加+图形修改
1. 单行文字的添加 第一步: 首先在CAD中新增中文样式 输入ST命令: 第二步:代码开发 /// <summary>/// 添加文本信息/// </summary>[CommandMethod("AddText")]public void AddText(){var doc Application.DocumentM…...
【SpringBoot集成Spring Security】
一、前言 Spring Security 和 Apache Shiro 都是安全框架,为Java应用程序提供身份认证和授权。 二者区别 Spring Security:重量级安全框架Apache Shiro:轻量级安全框架 关于shiro的权限认证与授权可参考小编的另外一篇文章 : …...
docker部署dm数据库
官方文档参考 官网地址:https://eco.dameng.com/document/dm/zh-cn/start/dm-install-docker.html 下载镜像地址 docker部署 1、加载镜像 docker load -i dm8_20240613_x86_rh6_64_rq_ent_8.1.3.140_pack5.tar使用docker images,查看镜像和镜像标签…...
Shell中执行.sh文件的常见方式
在Shell中执行.sh文件有几种常见的方式,具体取决于你希望如何执行这个脚本文件。以下是一些常用的方法: 直接运行: ./script.sh 这是最简单的方式。在当前Shell会话中执行脚本文件。 使用bash命令执行: bash script.sh 明确使用b…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
消防一体化安全管控平台:构建消防“一张图”和APP统一管理
在城市的某个角落,一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延,滚滚浓烟弥漫开来,周围群众的生命财产安全受到严重威胁。就在这千钧一发之际,消防救援队伍迅速行动,而豪越科技消防一体化安全管控平台构建的消防“…...
