Redis常用语法命令及使用示例详解

点击下载《Redis常用语法命令及使用示例详解》

Redis 是一个开源的内存数据结构存储系统,它可以用作数据库、缓存和消息中介。它支持多种类型的数据结构,如字符串、哈希、列表、集合、有序集合等类型,并且提供了丰富的命令来进行数据的增删改查。

以下是一些常用 Redis 命令的详细使用说明及示例:

1. 字符串(String)

SET
  • 描述:设置键值对。
  • 语法SET key value
  • 示例SET mykey "Hello Redis"
GET
  • 描述:获取键对应的值。
  • 语法GET key
  • 示例GET mykey,将返回 “Hello Redis”
DEL
  • 描述:删除一个或多个键。
  • 语法DEL key [key ...]
  • 示例DEL mykey,将删除键 “mykey”

2. 哈希(Hash)

HSET
  • 描述:在哈希表中设置字段的值。
  • 语法HSET key field value
  • 示例HSET myhash field1 "value1"
HGET
  • 描述:获取哈希表中字段的值。
  • 语法HGET key field
  • 示例HGET myhash field1,将返回 “value1”
HDEL
  • 描述:删除哈希表中的一个或多个字段。
  • 语法HDEL key field [field ...]
  • 示例HDEL myhash field1,将删除哈希表 “myhash” 中的 “field1” 字段

3. 列表(List)

Redis中的列表是简单的字符串列表,按照插入顺序排序。你可以从列表的两端推入或者弹出元素。

LPUSH
  • 描述:将一个或多个值插入到列表的左侧。
  • 语法LPUSH key value [value ...]
  • 示例LPUSH mylist "one",将一个值 “one” 插入到 “mylist” 列表的左侧。
RPUSH
  • 描述:将一个或多个值插入到列表的右侧。
  • 语法RPUSH key value [value ...]
  • 示例RPUSH mylist "two",将一个值 “two” 插入到 “mylist” 列表的右侧。
LPOP
  • 描述:移除并获取列表的第一个元素。
  • 语法LPOP key
  • 示例LPOP mylist,移除并返回 “mylist” 列表的第一个元素。
RPOP
  • 描述:移除并获取列表的最后一个元素。
  • 语法RPOP key
  • 示例RPOP mylist,移除并返回 “mylist” 列表的最后一个元素。
LRANGE
  • 描述:获取列表指定范围内的元素。
  • 语法LRANGE key start stop
  • 示例LRANGE mylist 0 -1,获取 “mylist” 列表中的所有元素(从索引0到最后一个元素)。

4. 集合(Set)

Redis中的集合是字符串的无序集合。集合成员是唯一的,不存在重复的成员。

SADD
  • 描述:将一个或多个成员添加到集合中。
  • 语法SADD key member [member ...]
  • 示例SADD myset "member1",将 “member1” 添加到 “myset” 集合中。
SMEMBERS
  • 描述:返回集合中的所有成员。
  • 语法SMEMBERS key
  • 示例SMEMBERS myset,返回 “myset” 集合中的所有成员。
SREM
  • 描述:从集合中移除一个或多个成员。
  • 语法SREM key member [member ...]
  • 示例SREM myset "member1",从 “myset” 集合中移除 “member1”。
SISMEMBER
  • 描述:检查给定值是否是集合的成员。
  • 语法SISMEMBER key member
  • 示例SISMEMBER myset "member1",检查 “member1” 是否是 “myset” 集合的成员。

5. 有序集合(Sorted Set)

Redis中的有序集合是字符串集合,每个元素都会关联一个double类型的分数。集合成员是唯一的,但分数(score)可以重复。

ZADD
  • 描述:将一个或多个成员及其分数添加到有序集合中。
  • 语法ZADD key [NX|XX] [CH] [INCR] score member [score member ...]
  • 示例ZADD mysortedset 1 "one",将 “one” 及其分数1添加到 “mysortedset” 有序集合中。
ZRANGE
  • 描述:返回有序集合中指定排名范围的成员。
  • 语法ZRANGE key start stop [WITHSCORES]
  • 示例ZRANGE mysortedset 0 -1 WITHSCORES,返回 “mysortedset” 有序集合中的所有成员及其分数。
ZREM
  • 描述:从有序集合中移除一个或多个成员。
  • 语法ZREM key member [member ...]
  • 示例ZREM mysortedset "one",从 “mysortedset” 有序集合中移除 “one”。
ZRANK
  • 描述:返回有序集合中指定成员的排名。
  • 语法ZRANK key member
  • 示例ZRANK mysortedset "one",返回 “one” 在 “mysortedset” 有序集合中的排名。

6. 键值对通用命令

EXISTS
  • 描述:检查一个键是否存在。
  • 语法EXISTS key [key ...]
  • 示例EXISTS mykey,如果键 “mykey” 存在则返回 1,否则返回 0。
TYPE
  • 描述:返回键所存储的值的类型。
  • 语法TYPE key
  • 示例TYPE mykey,将返回 “string”、“hash”、“list”、“set”、“zset” 等类型。
EXPIRE
  • 描述:为键设置一个过期时间(以秒为单位)。
  • 语法EXPIRE key seconds
  • 示例EXPIRE mykey 10,将 “mykey” 的过期时间设置为 10 秒后。
TTL
  • 描述:获取键的剩余生存时间(TTL, time to live)。
  • 语法TTL key
  • 示例TTL mykey,如果 “mykey” 设置了过期时间,则返回剩余的秒数;否则返回 -1。

7. 发布/订阅模式

PUBLISH
  • 描述:发布消息到指定的频道。
  • 语法PUBLISH channel message
  • 示例PUBLISH mychannel "Hello, Redis!",将消息 “Hello, Redis!” 发布到 “mychannel” 频道。
SUBSCRIBE
  • 描述:订阅一个或多个频道。
  • 语法SUBSCRIBE channel [channel ...]
  • 示例SUBSCRIBE mychannel,订阅 “mychannel” 频道。
UNSUBSCRIBE
  • 描述:退订一个或多个频道。
  • 语法UNSUBSCRIBE [channel [channel ...]]
  • 示例UNSUBSCRIBE mychannel,退订 “mychannel” 频道。

8. 服务器相关命令

INFO
  • 描述:获取服务器的信息。
  • 语法INFO [section]
  • 示例INFO server,获取服务器的详细信息。
FLUSHDB
  • 描述:删除当前数据库中的所有键。
  • 语法FLUSHDB
  • 示例FLUSHDB,删除当前数据库中的所有键。
FLUSHALL
  • 描述:删除所有数据库中的所有键。
  • 语法FLUSHALL
  • 示例FLUSHALL,删除所有数据库中的所有键。
PING
  • 描述:测试服务器是否运行正常。
  • 语法PING
  • 示例PING,如果服务器正常,则返回 “PONG”。
ECHO
  • 描述:回显给定的字符串。
  • 语法ECHO message
  • 示例ECHO "Hello, Redis!",服务器将返回"Hello, Redis!"。

9. 事务处理

Redis支持简单的事务处理,允许用户将多个命令打包成一个事务块,以确保这些命令的原子性执行。

MULTI
  • 描述:标记一个事务块的开始。
  • 语法MULTI
  • 示例MULTI,开始一个新的事务块。
EXEC
  • 描述:执行事务块中的所有命令。
  • 语法EXEC
  • 示例:在MULTI命令之后,可以输入多个Redis命令,然后使用EXEC命令执行它们。
DISCARD
  • 描述:取消事务,放弃事务块中的所有命令。
  • 语法DISCARD
  • 示例DISCARD,取消当前未执行的事务块。

10. Lua 脚本

Redis支持使用Lua脚本执行多个命令,并可以将脚本的结果作为单个命令的返回值。

EVAL
  • 描述:执行一个Lua脚本。
  • 语法EVAL script numkeys key [key ...] arg [arg ...]
  • 示例EVAL "return {KEYS[1],ARGV[1]}" 1 mykey myvalue,这个脚本将返回键"mykey"和参数"myvalue"。
EVALSHA
  • 描述:使用脚本的SHA1摘要执行Lua脚本,用于缓存脚本。
  • 语法EVALSHA sha1 numkeys key [key ...] arg [arg ...]
  • 示例:首先,你需要使用SCRIPT LOAD命令将脚本加载到Redis中,并获取其SHA1摘要,然后使用EVALSHA和该摘要执行脚本。

11. 持久化

Redis支持将数据持久化到磁盘上,以防止数据丢失。

SAVE
  • 描述:同步保存当前数据库的数据到磁盘上。
  • 语法SAVE
  • 注意SAVE命令会阻塞Redis服务器直到保存完成,因此不建议在生产环境中频繁使用。
BGSAVE
  • 描述:在后台异步保存当前数据库的数据到磁盘上。
  • 语法BGSAVE
  • 注意BGSAVE命令不会阻塞Redis服务器,它会在后台执行保存操作。

12. 数据迁移

Redis支持将数据从一个实例迁移到另一个实例。

MIGRATE
  • 描述:将键从一个Redis实例迁移到另一个Redis实例。
  • 语法MIGRATE host port key|"" destination-db timeout [COPY] [REPLACE] [KEYS key [key ...]] [DB num] [AUTH password] [KEYS_ASK] [CLUSTER]
  • 示例MIGRATE 127.0.0.1 6380 mykey 0 5000 REPLACE,这个命令将键"mykey"从当前实例迁移到运行在127.0.0.1:6380的Redis实例上,并使用REPLACE选项来覆盖目标实例上已存在的键。

13. 扫描命令

Redis提供了扫描命令来迭代数据库中的键,而不是一次性获取所有键(这可能会导致Redis阻塞)。

SCAN
  • 描述:迭代数据库中的键。
  • 语法SCAN cursor [MATCH pattern] [COUNT count]
  • 示例SCAN 0 MATCH user*: COUNT 100,这个命令将从游标0开始,迭代所有以"user:"开头的键,并每次返回最多100个键。

14. 配置命令

Redis支持一系列的配置命令,允许用户查询或修改服务器的配置参数。

CONFIG GET
  • 描述:获取配置参数的值。
  • 语法CONFIG GET parameter
  • 示例CONFIG GET maxmemory,获取Redis实例的最大内存限制。
CONFIG SET
  • 描述:设置配置参数的值。
  • 注意:不是所有的配置参数都可以使用CONFIG SET命令来动态修改。有些配置参数需要在Redis服务器启动时设置,或者需要重启服务器才能使修改生效。
  • 语法CONFIG SET parameter value
  • 示例CONFIG SET maxmemory 1073741824,将Redis实例的最大内存限制设置为1GB(1073741824字节)。

15. 客户端命令

Redis提供了一些命令来管理客户端连接。

CLIENT LIST
  • 描述:列出当前连接到Redis服务器的所有客户端连接。
  • 语法CLIENT LIST
  • 示例CLIENT LIST,列出所有客户端连接及其详细信息。
CLIENT KILL
  • 描述:关闭指定的客户端连接。
  • 语法CLIENT KILL [ip:port] [ID client-id] [TYPE normal|slave|pubsub] [ADDR ip:port] [SKIPME yes/no]
  • 示例CLIENT KILL IPADDR 127.0.0.1:6379,关闭来自IP地址127.0.0.1和端口6379的客户端连接。

点击下载《Redis常用语法命令及使用示例详解》

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Make3D数据集相关介绍

一、参考资料 Make3d数据集使用方法 二、相关介绍 1. 简介 Make3D 数据集的每帧图像的深度值均由激光雷达进行采集,相较于 Kinect 相机采集的深度信息,该测距仪可以得到室外图像更加精确的深度信息,而且测距范围更大,与普通的…

【stm32笔记】DSP库调用

参考:DSP库调用 , __CC_ARM,__TARGET_FPU_VFP, __FPU_PRESENT1U, ARM_MATH_CM4把需要的库复制出来单独用,方便移植

websevere服务器从零搭建到上线(三)|IO多路复用小总结和服务器的基础框架

文章目录 epollselect和poll的优缺点epoll的原理以及优势epoll 好的网络服务器设计Reactor模型图解Reactor muduo库的Multiple Reactors模型 epoll select和poll的优缺点 1、单个进程能够监视的文件描述符的数量存在最大限制,通常是1024,当然可以更改数…

什么是X电容和Y电容?

先补充个知识: 一、什么是差模信号和共模信号 差模信号:大小相等,方向相反的交流信号;双端输入时,两个信号的相位相差180度 共模信号:大小相等。方向相同。双端输入时,两个信号相同。 二、安规…

小程序如何重启

用户在使用小程序的过程中,有时候会碰到一些问题。比如小程序数据不加载、卡顿、崩溃或者出现其他异常情况。这时候,最简单的办法就是重启小程序。但是很多客户不知道如何重启小程序,下面就具体介绍小程序重新启动的几种方法。 1. 强制关闭&…

CWDM、DWDM、MWDM、LWDM:快速了解光波复用技术

在现代光纤通信领域,波分复用(WDM)技术作为一项先进的创新脱颖而出。它通过将多个不同波长和速率的光信号汇聚到一根光纤中来有效地传输数据。本文将深入探讨几种关键的 WDM 技术(CWDM、DWDM、MWDM 和 LWDM)&#xff0…

流量分析。

流量分析 在Wireshak抓包可以看到正常的执行流程如下: ● Client向Server发起Load data local infile请求 ● Server返回需要读取的文件路径 ● Client读取文件内容并发送给Server ● PS:在本机上启动服务端与客户端,启动wireshark 抓包&…

根据相同的key 取出数组中最后一个值

数组中有很多对象 , 需根据当前页面的值current 和 数组中的key对比 拿到返回值 数据结构如下 之前写法 const clickedItem routeList.find(item > item.key current) // current是当前页 用reduce遍历数组返回最后一个值 const clickedItem routeList.reduce((lastIte…

41.乐理基础-拍号-小节、小节线、终止线

小节线:下图红框中的竖线就是小节线 小节、终止线:最后的终止线就是文字意思表示乐谱结束了,后面没有了 下图中 0.5表示0.5拍(八分音符)、1表示1拍(四分音符)、0.25表示0.25拍(十六分…

学习Rust的第29天: cat in Rust

今天即将是这个系列的最后一次内容,我们正在catRust 中从 GNU 核心实用程序进行重建。cat用于将文件内容打印到STDOUT.听起来很容易构建,所以让我们开始吧。 GitHub 存储库:GitHub - shafinmurani/gnu-core-utils-rust 伪代码 function read(…

Transformer详解:从放弃到入门(一)

Transformer由论文《Attention is All You Need》提出,是一种用于自然语言处理(NLP)和其他序列到序列(sequence-to-sequence)任务的深度学习模型架构,在自然语言处理领域获得了巨大的成功,在这个…

免费开源线上线下交友社交圈子系统 小程序+APP+H5 可支持二开!

为什么要玩社交软件:互联网社交软件的独特优势 首先,社交软件为我们提供了一个便捷的沟通方式。在传统的交往方式中,人们需要面对面交流,这种方式在时间和空间上都受到限制。而社交软件打破了这些限制,无论我们身处何地…

如何复制本地docker镜像到其他主机

(1)打包镜像 比如我要复制的镜像是grafana的镜像 docker images 这里我把打包的镜像放在了根~目录下,如截图所示: docker save grafana/grafana:latest -o ~/grafana.jar (2)移动镜像 scp命令拷贝镜像到目标…

linux学习:线程池

目录 原理 初始线程池 运行中的线程池 相关结构体 api 线程池初始化 投送任务 增加活跃线程 删除活跃线程 销毁线程池 例子 thread_pool.h thread_pool.c test.c 测试程序 原理 一个进程中的线程就好比是一家公司里的员工,员工的数目应该根据公司的…

AI神助攻!小白也能制作自动重命名工具~

我们平时从网上下载一些文件,文件名很多都是一大串字母和数字,不打开看看,根本不知道里面是什么内容。 我想能不能做个工具,把我们一个文件夹下面的所有word、excel、ppt、pdf文件重命名为文件内容的第一行。 我们有些朋友可能不会…

刷代码随想录有感(57):二叉搜索树中的众数

题干&#xff1a; 代码&#xff1a; class Solution { public:unordered_map<int,int>map;void traversal(TreeNode* root){if(root NULL)return;traversal(root->left);map[root->val];traversal(root->right);}bool static cmp(const pair<int,int>&a…

[蓝桥杯2024]-PWN:ezheap解析(堆glibc2.31,glibc2.31下的double free)

查看保护 查看ida 大致就是只能创建0x60大小的堆块&#xff0c;并且uaf只能利用一次 完整exp&#xff1a; from pwn import* #context(log_leveldebug) pprocess(./ezheap2.31)def alloc(content):p.sendlineafter(b4.exit,b1)p.send(content) def free(index):p.sendlineaft…

C++:运算符重载(=/==)

赋值运算符&#xff08;&#xff09;重载 在C中&#xff0c;赋值运算符可以被重载&#xff0c;允许用户定义类对象的赋值行为。通过重载赋值运算符&#xff0c;可以自定义对象的赋值操作&#xff0c;以便适应特定的需求和语义。当我们定义一个自定义的类时&#xff0c;比如一个…

语音识别---节拍器

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计3077字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#xf…

商城数据库88张表结构完整示意图41~50(十二)

四十一&#xff1a; 四十二&#xff1a; 四十三&#xff1a; 四十四&#xff1a; 四十五&#xff1a; 四十六&#xff1a; 四十七&#xff1a; 四十八&#xff1a; 四十九&#xff1a; 五十&#xff1a;
最新文章