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…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...
