百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

Redis命令大全详解(38个最常用命令)

liuian 2025-09-29 07:21 13 浏览

关注mikechen十余年BAT架构经验倾囊相授!

大家好,我是mikechen。

Redis是大型架构的基石,下面我重点详解Redis命令大全@mikechen

文章来源:mikechen.cc


Redis String常用命令

命令名称

示例

描述

set

set key value

设置键值对

get

get key

获取值

incr

incr key

递增值

decr

decr key

递减值

strlen

strlen key

获取字符串长度

incrby

incrby key increment

增加指定数字

Redis String示例

#设置key和value,正确返回OKset key valueset name mikechen#获取key对应的value值,若没有返回nilget keyget name#返回key对应的value,再重新设置这个key的值getset key valuegetset name lily#设置多个键值对 正确返回OKmset k1 v1 k2 v2 ...mset sex 1 age 20 address hz#获取多对key对应的valuemget k1 k2 k3 ...mget sex age address

String类型的值为整数,或者浮点数形式时,Redis可以把它当做整数一样操作,支持自加(incr )、自减(decr )、加(incrby )、减(decrby )等操作。

#自增1,value是数值类型才能成功,如果这个值不是数值,则会报错incr keyincr age#age本来是20,现在返回就是21#自增指定数量,value是数值类型才能成功incrby age 5#age本来是20,现在返回就是25#自减1,value是数值类型才能成功。decr keydecr age#age本来是0,现在返回就是-1#自减指定数量,value是数值类型才能成功decrby keydecrby age 20#age本来是30,现在返回就是10

String应用场景

1)计数器

因为 Redis 处理命令是单线程,所以执行命令的过程是原子的,因此 String 数据类型适合计数场景,比如:计算访问次数、点赞、转发、库存数量等等;

2)共享session

分布式Session可以很方便的共享存储session。

3)分布式锁

SET 命令有个 NX 参数可以实现「key不存在才插入」,可以用它来实现分布式锁;


redis list常用指令

常用命令

命令

左压栈

lpush key v1 v2 v3 v4…

右压栈

rpush key v1 v2 …

查看里面的元素

lrange key start offset

左弹栈

lpop key

右弹栈

rpop key

按照索引查找

lindex key index

查看长度

llen key

删除几个几

lrem key 数量 value

指定开始和结束的位置截取,再赋值给key

ltrim key start offset

右出栈左压栈,把resoure的左后一个,压倒dest的第一个

rpoplpush resource destination

重置指定索引的值

lset key index value

在指定元素前/后插入指定元素

linsert key before/after 值1 值2

list底层有多种数据类型,数据量少的时候是ziplist压缩列表,内存是连续分配的,当元素个数超过某个值时转为linkedlist双向链表。

Redis 3.2 版本之后,List 数据类型底层数据结构就只由 quicklist 实现了,替代了双向链表和压缩列表。

Redis List应用场景

  1. 用户列表,商品列表,评论列表等;
  2. 消息队列;
  3. 栈;


Redis Set常用命令

常用命令

命令

添加值

sadd key values

查看值

smembers key

检查集合是否有值

sismember key value

查看set集合里面的元素个数

scard key

删除集合中的指定元素

srem key value

随机弹出某个元素

srandmember key

随机出栈

spop key

把key1中的某个值赋值给key2

smove SourceSet destSet membe

Redis Set应用场景

Set 类型比较适合用来数据去重和保障数据的唯一性,还可以用来统计多个集合的交集、错集和并集等,当我们存储的数据是无序并且需要去重的情况下,比较适合使用集合类型进行存储。

比如:

  • 统计网站uv;
  • 统计共同好友;


Sorted Set常用命令

命令

帮助

描述

zadd

zadd key score1 v1 score2 v2 score1v3 … scoren vn

为有序集合添加新成员

zrem

zrem key mem1 mem2 …memn

删除有序集合中指定成员

zcard

zcard key

获得有序集合中的元素数量

zcount

zcount key min max

返回集合中score值在[min,max]区间的元素数量

zincrby

zincrby key increment member

在集合的member分值上加increment

zscore

zscore key member

获得集合中member的分值

zrank

zrank key member

获得集合中member的排名(按分值从小到大)

zrevrank

zrevrank key member

获得集合中member的排名(按分值从大到小)

zrange

zrange key start end

获得集合中指定区间成员,按分数递增排序

zrevrange

zrevrange key start end

获得集合中指定区间成员,按分数递减排序

Sorted Set应用场景

有序列表被广泛使用在各种排行榜业务上:比如销量排行,用户点击率排行等


Redis Hash常用命令

作用

命令

添加单个

hset key field value

获取单个

hget key field

一次性添加多个键值

hmset key field1 value1 field2 value2 …

一次性获取多个

hmget

获取所有键值

hgetall key

删除

hdel

获取键值对的个数

hlen

检查是否包含某个字段

hget key field

查看所有key

hkeys

给某个数值类型(否则报错)的值增加指定整数值

hincrby key field increment

给某个数字类型值,增加指定浮点类型值

hincrbyfloat key field increment

如果不存在则添加

hsetnx

Redis Hash应用场景

比如最典型的就是购物车,以用户 id 为 key,商品 id 为 field,商品数量为 value,恰好构成了购物车的3个要素,如下图所示:

涉及的命令如下:

  • 添加商品:HSET cart:{用户id} {商品id} 1
  • 添加数量:HINCRBY cart:{用户id} {商品id} 1
  • 商品总数:HLEN cart:{用户id}
  • 删除商品:HDEL cart:{用户id} {商品id}
  • 获取购物车所有商品:HGETALL cart:{用户id}

当前仅仅是将商品ID存储到了Redis 中,在回显商品具体信息的时候,还需要拿着商品 id 查询一次数据库,获取完整的商品的信息。

以上

本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。

相关推荐

教你把多个视频合并成一个视频的方法

一.情况介绍当你有一个m3u8文件和一个目录,目录中有连续的视频片段,这些片段可以连成一段完整的视频。m3u8文件打开后像这样:m3u8文件,可以理解为播放列表,里面是播放视频片段的顺序。视频片段像这...

零代码编程:用kimichat合并一个文件夹下的多个文件

一个文件夹里面有很多个srt字幕文件,如何借助kimichat来自动批量合并呢?在kimichat对话框中输入提示词:你是一个Python编程专家,完成如下的编程任务:这个文件夹:D:\downloa...

Java APT_java APT 生成代码

JavaAPT(AnnotationProcessingTool)是一种在Java编译阶段处理注解的工具。APT会在编译阶段扫描源代码中的注解,并根据这些注解生成代码、资源文件或其他输出,...

Unit Runtime:一键运行 AI 生成的代码,或许将成为你的复制 + 粘贴神器

在我们构建了UnitMesh架构之后,以及对应的demo之后,便着手于实现UnitMesh架构。于是,我们就继续开始UnitRuntime,以用于直接运行AI生成的代码。PS:...

挣脱臃肿的枷锁:为什么说Vert.x是Java开发者手中的一柄利剑?

如果你是一名Java开发者,那么你的职业生涯几乎无法避开Spring。它如同一位德高望重的老国王,统治着企业级应用开发的大片疆土。SpringBoot的约定大于配置、SpringCloud的微服务...

五年后,谷歌还在全力以赴发展 Kotlin

作者|FredericLardinois译者|Sambodhi策划|Tina自2017年谷歌I/O全球开发者大会上,谷歌首次宣布将Kotlin(JetBrains开发的Ja...

kotlin和java开发哪个好,优缺点对比

Kotlin和Java都是常见的编程语言,它们有各自的优缺点。Kotlin的优点:简洁:Kotlin程序相对于Java程序更简洁,可以减少代码量。安全:Kotlin在类型系统和空值安全...

移动端架构模式全景解析:从MVC到MVVM,如何选择最佳设计方案?

掌握不同架构模式的精髓,是构建可维护、可测试且高效移动应用的关键。在移动应用开发中,选择合适的软件架构模式对项目的可维护性、可测试性和团队协作效率至关重要。随着应用复杂度的增加,一个良好的架构能够帮助...

颜值非常高的XShell替代工具Termora,不一样的使用体验!

Termora是一款面向开发者和运维人员的跨平台SSH终端与文件管理工具,支持Windows、macOS及Linux系统,通过一体化界面简化远程服务器管理流程。其核心定位是解决多平台环境下远程连接、文...

预处理的底层原理和预处理编译运行异常的解决方案

若文章对您有帮助,欢迎关注程序员小迷。助您在编程路上越走越好![Mac-10.7.1LionIntel-based]Q:预处理到底干了什么事情?A:预处理,顾名思义,预先做的处理。源代码中...

为“架构”再建个模:如何用代码描述软件架构?

在架构治理平台ArchGuard中,为了实现对架构的治理,我们需要代码+模型描述所要处理的内容和数据。所以,在ArchGuard中,我们有了代码的模型、依赖的模型、变更的模型等,剩下的两个...

深度解析:Google Gemma 3n —— 移动优先的轻量多模态大模型

2025年6月,Google正式发布了Gemma3n,这是一款能够在2GB内存环境下运行的轻量级多模态大模型。它延续了Gemma家族的开源基因,同时在架构设计上大幅优化,目标是让...

比分网开发技术栈与功能详解_比分网有哪些

一、核心功能模块一个基本的比分网通常包含以下模块:首页/总览实时比分看板:滚动展示所有正在进行的比赛,包含比分、比赛时间、红黄牌等关键信息。热门赛事/焦点战:突出显示重要的、关注度高的比赛。赛事导航...

设计模式之-生成器_一键生成设计

一、【概念定义】——“分步构建复杂对象,隐藏创建细节”生成器模式(BuilderPattern):一种“分步构建型”创建型设计模式,它将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建...

构建第一个 Kotlin Android 应用_kotlin简介

第一步:安装AndroidStudio(推荐IDE)AndroidStudio是官方推荐的Android开发集成开发环境(IDE),内置对Kotlin的完整支持。1.下载And...