【Redis】常用命令汇总

Redis 作为高性能的键值存储数据库,提供了丰富的命令集,主要涵盖 字符串 (String)、哈希 (Hash)、列表 (List)、集合 (Set)、有序集合 (ZSet)、键 (Keys)、Geo(地理位置)、HyperLogLog(基数统计)、Bitmap(位图)、BitField(位操作)、Scan(迭代查询)操作。
下面按照类别分类总结 Redis 的常用命令及其使用方式。

基本操作

1. Key(键)操作

命令作用
EXISTS key检查 key 是否存在
DEL key [key ...]删除一个或多个 key
EXPIRE key seconds设置 key 的过期时间
TTL key查看 key 剩余的生存时间
RENAME key newkey修改 key 的名称
TYPE key获取 key 对应的 value 类型
KEYS pattern

查找符合 pattern 规则的 key

示例

SET name "redis"
EXPIRE name 10
TTL name
DEL name

2. 字符串 (String)

命令说明
SET key value设置指定 key 的值
GET key获取指定 key 的值
GETSET key value设置新值并返回旧值
MGET key [key ...]同时获取多个 key 的值
MSET key value [key value ...]同时设置多个 key 的值
MSETNX key value [key value ...]同时设置多个 key 的值(当所有 key 都不存在时才执行)
SETNX key value当 key 不存在时,设置 key 的值
SETEX key seconds value设置 key 的值,并指定过期时间(秒)
PSETEX key milliseconds value设置 key 的值,并指定过期时间(毫秒)
STRLEN key返回 key 中字符串值的长度
APPEND key value追加 value 到 key 原有值的末尾
GETRANGE key start end获取字符串指定区间内的子字符串(旧别名:SUBSTR)
SETRANGE key offset value从指定偏移量开始,覆盖写入字符串
INCR key将 key 中存储的数字加 1
INCRBY key increment将 key 中存储的数字加上指定增量
INCRBYFLOAT key increment将 key 中存储的浮点数加上指定增量
DECR key将 key 中存储的数字减 1
DECRBY key decrement将 key 中存储的数字减去指定减量
GETBIT key offset返回字符串中指定偏移量处的位值
SETBIT key offset value将字符串中指定偏移量处的位设置为 0 或 1
BITCOUNT key [start end]统计字符串中值为 1 的位数
BITOP operation destkey key [key ...]对一个或多个 key 进行位操作(AND、OR、XOR、NOT)
BITPOS key bit [start] [end]查找字符串中第一个指定二进制位的位置

示例

SET username "Tom"
GET username
INCR count
DECR count
APPEND username " Smith"
STRLEN username

3. 哈希 (Hash)

命令说明
HSET key field value为哈希表中的字段赋值
HSETNX key field value仅当字段不存在时,为哈希表中的字段赋值
HMSET key field value [field value ...]同时为多个字段赋值(新版 Redis 建议使用 HSET 多参数形式)
HGET key field获取哈希表中指定字段的值
HMGET key field [field ...]获取哈希表中多个字段的值
HDEL key field [field ...]删除哈希表中一个或多个字段
HEXISTS key field检查哈希表中是否存在指定字段
HLEN key返回哈希表中字段的数量
HKEYS key返回哈希表中所有的字段名称
HVALS key返回哈希表中所有字段对应的值
HGETALL key返回哈希表中所有的字段和值
HINCRBY key field increment将哈希表中指定字段的整数值增加指定数值
HINCRBYFLOAT key field increment将哈希表中指定字段的浮点数值增加指定数值
HSTRLEN key field返回哈希表中指定字段对应的值的字符串长度

示例

HSET user:1001 name "Alice"
HGET user:1001 name
HGETALL user:1001
HDEL user:1001 name

4. 列表 (List)

命令说明
LPUSH key value [value ...]将一个或多个值插入到列表的头部
RPUSH key value [value ...]将一个或多个值插入到列表的尾部
LPOP key移除并返回列表的第一个元素
RPOP key移除并返回列表的最后一个元素
LINDEX key index通过索引获取列表中的元素(索引从 0 开始,负数表示从尾部开始)
LLEN key获取列表的长度
LRANGE key start stop获取列表中指定区间内的元素
**LINSERT key BEFOREAFTER pivot value**
LSET key index value对列表中指定索引位置的元素进行赋值
LREM key count value根据参数 count 的值,移除列表中与 value 相等的元素
LTRIM key start stop对列表进行修剪,只保留指定区间内的元素
RPOPLPUSH source destination移除 source 列表的最后一个元素,并将其添加到 destination 列表的头部,同时返回该元素
BLPOP key [key ...] timeout阻塞式地移除并返回列表的第一个元素(可同时阻塞多个列表)
BRPOP key [key ...] timeout阻塞式地移除并返回列表的最后一个元素
BRPOPLPUSH source destination timeout阻塞式地执行 RPOPLPUSH 操作
LPUSHX key value当列表存在时,将值插入到列表头部
RPUSHX key value当列表存在时,将值插入到列表尾部

示例

LPUSH queue "task1"
RPUSH queue "task2"
LPOP queue
LRANGE queue 0 -1

5. 集合 (Set)

命令说明
SADD key member [member ...]向集合中添加一个或多个成员
SREM key member [member ...]移除集合中的一个或多个成员
SMEMBERS key返回集合中的所有成员
SISMEMBER key member判断指定元素是否集合的成员
SCARD key获取集合中成员的数量
SINTER key [key ...]返回给定所有集合的交集
SINTERSTORE destination key [key ...]计算给定集合的交集,并将结果存储在 destination 中
SUNION key [key ...]返回给定所有集合的并集
SUNIONSTORE destination key [key ...]计算给定集合的并集,并将结果存储在 destination 中
SDIFF key [key ...]返回给定集合之间的差集
SDIFFSTORE destination key [key ...]计算差集并将结果存储在 destination 中
SRANDMEMBER key [count]返回集合中一个或多个随机成员
SSCAN key cursor [MATCH pattern] [COUNT count]迭代集合中的元素(适合处理大集合时分批遍历)

示例

SADD users "Tom" "Jerry"
SMEMBERS users
SISMEMBER users "Tom"
SREM users "Jerry"
SCARD users

6. 有序集合 (Sorted Set / ZSet)

命令说明
ZADD key [NX|XX] [CH] [INCR] score member [score member ...]
ZREM key member [member ...]移除有序集合中的一个或多个成员
ZINCRBY key increment member为有序集合中的成员的分数加上指定值
ZRANGE key start stop [WITHSCORES]返回有序集合中指定区间内的成员(按分数从低到高排序)
ZREVRANGE key start stop [WITHSCORES]返回有序集合中指定区间内的成员(按分数从高到低排序)
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]返回有序集合中分数在指定范围内的成员
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]返回有序集合中分数在指定范围内的成员(从高到低排序)
ZRANK key member返回成员在有序集合中的排名(从 0 开始,按分数从低到高排序)
ZREVRANK key member返回成员在有序集合中的排名(从 0 开始,按分数从高到低排序)
ZSCORE key member返回有序集合中成员的分数
ZCARD key获取有序集合中的成员数量
ZCOUNT key min max统计分数在指定范围内的成员数量
ZLEXCOUNT key min max统计字典序在指定范围内的成员数量(仅适用于分数相同的成员)
ZRANGEBYLEX key min max [LIMIT offset count]返回有序集合中成员的字典序范围内的元素
ZREVRANGEBYLEX key max min [LIMIT offset count]返回有序集合中成员的字典序范围内的元素(逆序)
ZPOPMIN key [count]移除并返回有序集合中分数最小的成员
ZPOPMAX key [count]移除并返回有序集合中分数最大的成员
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM | MAX | MIN]多个有序集合求并集
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM | MAX | MIN]多个有序集合求交集
ZSCAN key cursor [MATCH pattern] [COUNT count]迭代有序集合中的元素
ZMSCORE key member [member ...]获取有序集合中多个成员的分数(Redis 6.2 及以上支持)

示例

ZADD ranking 100 "Alice"
ZADD ranking 200 "Bob"
ZRANGE ranking 0 -1 WITHSCORES
ZREM ranking "Alice"

7. 其他操作

命令作用
FLUSHDB清空当前数据库
FLUSHALL清空所有数据库
INFO获取服务器统计信息
PING测试连接

 特定使用场景操作

1. Geo(地理位置存储与计算)

Redis 的 Geo 用于存储地理位置(经纬度)并提供距离计算、范围查询等功能。

命令作用
GEOADD key longitude latitude member [longitude latitude member ...]添加地理位置信息
GEODIST key member1 member2 [unit]计算两个位置之间的距离(支持单位:m、km、mi、ft)
GEOPOS key member [member ...]获取指定位置的经纬度
`GEORADIUS key longitude latitude radius unit [WITHCOORD] [WITHDIST] [COUNT count] [ASC|DESC]`
`GEORADIUSBYMEMBER key member radius unit [WITHCOORD] [WITHDIST] [COUNT count] [ASC|DESC]`
GEOHASH key member [member ...]获取成员的 GeoHash 值

示例

GEOADD cities 116.40 39.90 "Beijing"
GEOADD cities 121.47 31.23 "Shanghai"
GEODIST cities "Beijing" "Shanghai" km
GEORADIUS cities 116.40 39.90 100 km WITHDIST

2. HyperLogLog(基数统计)

Redis HyperLogLog 是用于 近似统计不重复元素数量 的数据结构,占用内存固定(12 KB),适用于大规模数据去重计数。

命令作用
PFADD key element [element ...]添加元素到 HyperLogLog
PFCOUNT key [key ...]获取去重后的元素数量估算值
PFMERGE destkey sourcekey [sourcekey ...]合并多个 HyperLogLog

示例

PFADD users "user1" "user2" "user3"
PFCOUNT users
PFMERGE total_users users1 users2

适用场景:统计 网站UV、活跃用户数、访问IP数 等。

3. Bitmap(位图)

Bitmap 是 二进制位存储 结构,适用于存储 用户签到、活跃状态、权限控制 等场景。

命令作用
SETBIT key offset value设置某个位的值(1 或 0)
GETBIT key offset获取某个位的值
BITCOUNT key [start end]统计 key 中值为 1 的位个数
BITOP operation destkey key [key ...]按位操作(AND、OR、XOR、NOT)

示例

SETBIT sign:20240301 1 1  # 用户ID=1签到
SETBIT sign:20240301 2 1  # 用户ID=2签到
GETBIT sign:20240301 1  # 查询用户ID=1是否签到
BITCOUNT sign:20240301  # 统计今日签到人数

适用场景:用户签到、状态标记、权限控制、唯一性判断。

4. BitField(高级位操作)

BitField 用于操作多个二进制位 (支持批量读写),适用于 计数器、标记存储、状态管理

命令作用
BITFIELD key GET type offset读取某个位置的值
BITFIELD key SET type offset value设置某个位范围的值
BITFIELD key INCRBY type offset increment对某个位范围的值进行增减

示例

BITFIELD user_data SET u8 0 100   # 把偏移量0的8位数值设为100
BITFIELD user_data INCRBY u8 0 5  # 偏移量0的8位数值加5
BITFIELD user_data GET u8 0       # 获取偏移量0的8位值

适用场景:用户计数、状态标记、存储紧凑数据。

5. Scan(游标迭代查询)

SCAN 命令用于 大规模数据迭代查询,可以分批遍历 key、集合、哈希、ZSet

命令作用
SCAN cursor [MATCH pattern] [COUNT count]迭代 key
HSCAN key cursor [MATCH pattern] [COUNT count]迭代 hash
SSCAN key cursor [MATCH pattern] [COUNT count]迭代 set
ZSCAN key cursor [MATCH pattern] [COUNT count]迭代 zset

示例

SCAN 0 MATCH user:* COUNT 10
HSCAN user:1001 0 MATCH name COUNT 5

适用场景海量数据分页查询,防止 KEYS 阻塞 Redis。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32之ADC

逐次逼近式ADC: 左边是8路输入通道,左下是地址锁存和译码,可将通道的地址锁存进ADDA,ADDB,ADDC类似38译码器的结构,ALE为锁存控制键,通道选择开关可控制选择单路或者多路通道,DAC为…

Magento2根据图片文件包导入产品图片

图片包给的图片文件是子产品的图片&#xff0c;如下图&#xff1a;A104255是主产品的sku <?php/*** 根据图片包导入产品图片&#xff0c;包含子产品和主产品* 子产品是作为主图&#xff0c;主产品是作为附加图片*/use Magento\Framework\App\Bootstrap;include(../app/boot…

初学STM32之简单认识IO口配置(学习笔记)

在使用51单片机的时候基本上不需要额外的配置IO&#xff0c;不过在使用特定的IO的时候需要额外的设计外围电路&#xff0c;比如PO口它是没有内置上拉电阻的。因此若想P0输出高电平&#xff0c;它就需要外接上拉电平。&#xff08;当然这不是说它输入不需要上拉电阻&#xff0c;…

图像生成-ICCV2019-SinGAN: Learning a Generative Model from a Single Natural Image

图像生成-ICCV2019-SinGAN: Learning a Generative Model from a Single Natural Image 文章目录 图像生成-ICCV2019-SinGAN: Learning a Generative Model from a Single Natural Image主要创新点模型架构图生成器生成器源码 判别器判别器源码 损失函数需要源码讲解的私信我 S…

STM32之I2C硬件外设

注意&#xff1a;硬件I2C的引脚是固定的 SDA和SCL都是复用到外部引脚。 SDA发送时数据寄存器的数据在数据移位寄存器空闲的状态下进入数据移位寄存器&#xff0c;此时会置状态寄存器的TXE为1&#xff0c;表示发送寄存器为空&#xff0c;然后往数据控制寄存器中一位一位的移送数…

Git - 补充工作中常用的一些命令

Git - 补充工作中常用的一些命令 1 一些场景1.1 场景11.2 场景21.3 场景31.4 场景41.5 场景51.6 场景61.7 场景71.8 场景81.9 场景91.10 场景101.11 场景111.12 场景121.13 场景131.14 场景141.15 场景15 2 git cherry-pick \<commit-hash\> 和 git checkout branch \-\-…

AI 驱动的软件测试革命:从自动化到智能化的进阶之路

&#x1f680;引言&#xff1a;软件测试的智能化转型浪潮 在数字化转型加速的今天&#xff0c;软件产品的迭代速度与复杂度呈指数级增长。传统软件测试依赖人工编写用例、执行测试的模式&#xff0c;已难以应对快速交付与高质量要求的双重挑战。人工智能技术的突破为测试领域注…

Unity--Cubism Live2D模型使用

了解LIVE2D在unity的使用--前提记录 了解各个组件的作用 Live2D Manuals & Tutorials 这些文件都是重要的控制动画参数的 Cubism Editor是编辑Live2D的工具&#xff0c;而导出的数据的类型&#xff0c;需要满足以上的条件 SDK中包含的Cubism的Importer会自动生成一个Pref…

Windows 系统 Docker Desktop 入门教程:从零开始掌握容器化技术

文章目录 前言一、Docker 简介二、Docker Desktop 安装2.1 系统要求2.2 安装步骤 三、Docker 基本概念四、Docker 常用命令五、实战&#xff1a;运行你的第一个容器5.1 拉取并运行 Nginx 容器5.2 查看容器日志5.3 停止并删除容器 六、总结 前言 随着云计算和微服务架构的普及&…

Lab17_ Blind SQL injection with out-of-band data exfiltration

文章目录 前言&#xff1a;进入实验室构造 payload 前言&#xff1a; 实验室标题为&#xff1a; 带外数据泄露的 SQL 盲注 简介&#xff1a; 本实验包含一个SQL盲目注入漏洞。应用程序使用跟踪Cookie进行分析&#xff0c;并执行包含提交的Cookie值的SQL查询。 SQL查询是异…

Vue 框架深度解析:源码分析与实现原理详解

文章目录 一、Vue 核心架构设计1.1 整体架构流程图1.2 模块职责划分 二、响应式系统源码解析2.1 核心类关系图2.2 核心源码分析2.2.1 数据劫持实现2.2.2 依赖收集过程 三、虚拟DOM与Diff算法实现3.1 Diff算法流程图3.2 核心Diff源码 四、模板编译全流程剖析4.1 编译流程图4.2 编…

Linux基本指令

一&#xff1a;Xshell相关快捷键 1.AltEnter进入Xshell全屏模式&#xff0c;再按一次AltEnter退出Xshell全屏模式 2.Ctrl Insert复制 3.Shift Insert粘粘 二&#xff1a;Linux基本指令 1.clear&#xff1a; 清屏&#xff1a;即将屏幕框上的所有内容删除 2.pwd&#xf…

Python基于Django的医用耗材网上申领系统【附源码、文档说明】

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…

计算机视觉|3D卷积网络VoxelNet:点云检测的革新力量

一、引言 在科技快速发展的背景下&#xff0c;3D 目标检测技术在自动驾驶和机器人领域中具有重要作用。 在自动驾驶领域&#xff0c;车辆需实时、准确感知周围环境中的目标物体&#xff0c;如行人、车辆、交通标志和障碍物等。只有精确检测这些目标的位置、姿态和类别&#x…

【AD】5-13 特殊粘贴使用

同等间距复制很多过孔 复制之后进行特殊性粘贴&#xff0c;选择阵列粘贴 将元件带位号、带网络从PCB复制粘贴到另一个PCB 全选PCB并复制&#xff0c;来到另一个PCB&#xff0c;点击特殊性粘贴

Unity自定义区域UI滑动事件

自定义区域UI滑动事件 介绍制作1.创建一个Image2.创建脚本 总结 介绍 一提到滑动事件联想到有太多的插件了比如EastTouchBundle&#xff0c;今天想单纯通过UI去做一个滑动事件而不是基于Box2d或者Box去做滑动事件。 制作 1.创建一个Image 2.创建脚本 using UnityEngine; us…

报表DSL优化,享元模式优化过程,优化效果怎么样?

报表DSL优化与享元模式应用详解 一、报表DSL优化 1. 问题背景 报表系统通常使用领域特定语言&#xff08;DSL&#xff09;定义模板结构、数据绑定规则及样式配置。随着复杂度提升&#xff0c;DSL可能面临以下问题&#xff1a; 冗余配置&#xff1a;重复定义样式、布局或数据源…

Python —— pow()函数

一、示例1 # 计算 2 的 3 次幂 result1 pow(2, 3) print(result1) # 输出: 8# 计算 2.5 的 2 次幂 result2 pow(2.5, 2) print(result2) # 输出: 6.25 二、示例2 # 计算 (2 ** 3) % 5 result3 pow(2, 3, 5) print(result3) # 输出: 3 三、示例3 ntxt input("请输…

STM32——GPIO介绍

GPIO(General-Purpose IO ports,通用输入/输出接口)模块是STM32的外设接口的核心部分,用于感知外界信号(输入模式)和控制外部设备(输出模式),支持多种工作模式和配置选项。 1、GPIO 基本结构 STM32F407 的每个 GPIO 引脚均可独立配置,主要特性包括: 9 组 GPIO 端口…

3月8号(信息差)

🌍“星际之门”首个数据中心重磅启航!料部署6.4万块英伟达GB200 🎄全球AI大混战升温!超越Sora的阿里万相大模型开源 家用显卡都能跑 ✨重磅!阿里深夜推出全新推理模型,仅1/20参数媲美DeepSeek R1 1.7B级形式化推理与验证小模型,媲美满血版DeepSeek-R1,全面开源! 研…