03、Redis基础命令

Redis基础命令及应用场景介绍

一、基础命令

心跳命令

命令:ping

如果执行命令返回PONG,表示我们客户端与服务端连接是正常的。

读写键值命令

写入键值对,命令:set key value  把指定的key-value对写入到DB

读取指定键的值,命令:get key  读取指定key对应的value值

数据库切换

Redis默认会提供16个数据库,其编号为0~15,默认连接上后使用的是DB0

如果我们要切换到指定的数据库,使用命令:select 5  表示我们此时需要切换到5号数据库

查看数据库中的key数量

命令:dbsize  返回当前库中key有多少个

删除数据库中的数据

删除数据库中的数据命令在使用时一定要小心,一般在生产中会把空上命令进行重命名,防止误操作。

命令:flushdb  删除当前数据库中的所有数据,对于其它数据库中的数据没有影响

命令:flushall  删除所有数据库中的所有数据

对于上面的两个删除命令一般会在redis.conf文件中做如下配置,让删除数据的命令不可用

rename-command flushall ""
rename-command flushdb ""

退出客户端

命令:quit 或者是 exit

在客户端处于连接状态下,使用shutdown命令可以关闭服务端!

二、key操作命令

Redis中存储数据的整体是一个Map,其中key是String类型,value可以是String,Hash,List,Set等类型。

命令 说明 示例
keys

查询库中的key

keys 这个命令一般在生产中不会使用,因为生产环境中的key非常多,而使用keys这样查的话可能会阻塞当前redis服务,可以考虑使用scan命令替代。

keys *:这进面的*表示是所有key

keys h*:这里的参数h*表示查询所有以h开头的key

keys *o*:这里的参数*o*表示查询带有o的key

keys h?ll:这里的h?ll表示查询key的名称匹配正则h?ll的key

exists

判断当前库中是否存在指定的key

一次可以判断多个key,存在则为1,不存在为0,最终返回的结果是每个key判断结果的合计(有多少key存在则返回多少)

exists name age
del

删除指定的key

一次可以删除多个key,删除成功返回1,不成功返回0,如果删除多个则是对这多个删除结果0和1的汇总数量

del name age
rename

重命名key

这个命令把指定的key重新命名为一个新的名称,重命名成功返回ok,如果指定需要重命名的key不存在则会报错

rename emp employee:把emp这个key的名称重命名为employee
move

移动指定key到其它的数据库

把指定的key移动到指定的数据库,指定的数据库使用数据库索引来表示,成功返回1,失败返回0,不可以把某个key指定移动到key本身所在的库,这样的话会报错

move name 1:把name这个key移动到索引为1号的数据库
type

返回key存储的值的类型

有六种返回情况

none(指定key不存在)

string(字符串)

list(列表)

set(集合)

zset(有序集合)

hash(哈希表)

type name:查询name存储值的类型
expire/pexpire

用来指定key的生存时间

expire这个指定时间以秒为单位

pexpire这个指定的时间以毫秒为单位

在redis当中带有生存时间的key被称为”易失的“

expire name 10:设置name这个key的生存时间为10秒

pexpire name 3000:设置name这个key的生存时间是3000毫秒

ttp/pttl

这个命令上面的生成时间有关系,它返回的是指定key还有多长时间的生成时间

如果key已经没有了则会返回-2

ttl返回的数值单位是秒,pttl返回的数值单位是毫秒

ttl name:查询name这个key还剩余的生存时间,单位是秒

pttl name:查询name这个key还剩余的生存时间,单位是毫秒

persist

把指定的key从易失的变为持久的,也就是把有过期时间的变为没有过期时间的

如果把key从有过期时间的变为没有过期时间的后,再用ttl查其剩余的生存时间时会返回-1(表示key没有过期时间)

persist name
randomkey

从当前库中随机返回一个key

可以使用这个命令来判断一个库是不是空的,返回有值则不是空的,如果没有值则为空的

randomkey

关于scan命令说明

scan命令后加上一个游标,它指定了从哪里开始,内部的每个key记录的都有一个类似于指针的东西,这个指定的游标就是指定从哪里开始做检索查询。

示例命令:scan 0 count 3   表示从0开始,一次检索3个数据

返回的数据由两部分组成:

  • 第一部分:表示下一次开始的指针位置,如果这一部分返回0表示结束了没有数据了
  • 第二部分:表示这次检索出来的数据

示例命令:scan 0 count 5 match *a*  表示从0开始,检索5个,这5个要匹配*a*的规则,这个时候同样会返回两部分数据,第一部分是下一次开始的指针位置,第二部分是匹配到的数据

示例命令:scan 0 count 6 type list  表示从0开始,检索6个,这6个中要匹配类型是list的,同样它返回的也有两部分数据

对于scan命令中的参数 count,match,type都是检索条件可以省略的!

注意事项:

  1. 使用间断的、负数、超出范围或者其它非正常的游标来指行增量式迭代时不会造成服务器的崩溃
  2. scan命令中的count参数用于建议每次迭代返回的元素数量,但是它并不是一个严格的限制,而是给redis的一个提示值,redis最终返回会尽量接近这个值,但是实际返回的数量可能会不同
  3. 虽然scan命令不会阻塞服务器,但是在高并发的场景下仍需要注意其对性能的影响
  4. 当一个数据库的数据一直在增加时,想要访问这个数据库中的所有元素就需要做越来越多的迭代工作,能否结束则要看迭代的速度是否比数据增长的速度快

与scan相关的还有三个命令:

  • hscan:属于hash型value操作命令集合,用来遍历db当中指定hash表的所有field-value对
    • 命令示例:hscan employee 0 count 5
  • sscan:属于set型value操作命令集合,用来遍历当前db中指定set集合的所有元素
  • zscan:属于zset型value操作命令集合,用于遍历当前db中指定有序集合的所有元素

scan是对db中的key进行遍历迭代,其它的三个hscan是对db中key的对应hash中的内容再做遍历迭代,sscan是对db中指定key的值类型是set的元素内容再做遍历迭代,zscan是对key的值类型是zset的内容进行遍历迭代。

三、value操作命令

String类型的value操作

String类型的value是redis当中最为基本、最常见的类型。它可以存放任意数据,包括数值型、二进制图片、音频、视频、序列化对象等等

<think>首先,用户的问题是关于Windows环境下Redis基础命令列表。我需要根据系统级指令来构建回答。系统级指令:1.所有行内数学表达式必须使用$...$格式。但在这个问题中,涉及数学的可能性不大,因为主题是Redis命令。所以,我应该避免不必要的数学表达式。2.独立公式必须使用$$...$$格式并单独成段。同样,不适用于这里。3.LaTeX语法正确:确保任何LaTeX使用正确。4.使用中文回答:整个回答必须用中文。5.生成相关问题:在回答末尾,添加相关问题。6.回答中引用的段落末尾自然地添加引用标识,例如[^1]。用户可见层:-回答结构清晰,帮助用户逐步解决问题。-尽量保证回答真实可靠。-参考站内引用:有三个引用,我需要参考它们,但引用不是用户真正的需求,而是上下文。用户上一次的问题似乎是关于Redis基础命令,引用提供了额外信息。引用内容:-[^1]:关于Redis的应用场景和特点,以及Windows安装。-[^2]:关于Redis与MySQL的集成。-[^3]:关于Redis列表数据结构的特性。用户当前的查询:"我想查找Windows环境下Redis基础命令列表",所以焦点是基础命令列表。我的回答应该:1.结构清晰:逐步介绍Redis基础命令。2.基于引用:引用中提到了一些命令和特性,如list操作,所以我应该整合这些。3.真实可靠:确保命令列表准确。我知道Redis命令是跨平台的,但用户指定Windows环境,所以我需要提到如何在Windows的cmd中运行命令。4.添加相关问题:在末尾生成相关问题。5.添加引用标识:如果在回答中引用段落,在末尾添加[^n]。组织回答:-开头:简要介绍Redis在Windows中的基本操作。-主体:列出基础命令,分组如键值操作、字符串、列表、集合等,参考引用中的内容。-结尾:总结或提示如何练习。-然后,添加相关问题。命令列表:基于Redis常见命令:-连接命令:PING,AUTH,SELECT-键操作:SET,GET,DEL,EXISTS,KEYS-字符串:INCR,DECR,APPEND-列表:LPUSH,RPUSH,LPOP,RPOP,LLEN(参考[^3])-集合:SADD,SMEMBERS,SREM-哈希:HSET,HGET,HDEL-有序集合:ZADD,ZRANGE-通用:FLUSHDB,FLUSHALL在Windows中,使用redis-cli在cmd中运行命令,如引用[^1]和[^2]提到的。生成相关问题:-类似示例中的快速排序问题,我需要生成3个相关问题,如:1.如何安装Redis在Windows上?2.Redis的持久化机制是什么?3.如何优化Redis性能?确保引用标识:如果我提到引用中的内容,如应用场景或特性,在段落末尾添加[^n]。最终回答结构:-用中文。-清晰段落。-命令列表可以用代码块或列表展示,但指令说行内数学用$...$,独立公式用$$...$$,但命令是文本,所以可能不需要LaTeX。我可以使用代码块来显示命令示例,如示例中的Python代码。-在末尾添加相关问题。</think>### Windows环境下Redis基础命令列表 在Windows系统中,Redis基础操作主要通过命令行工具`redis-cli`在cmd窗口中执行(需先安装Redis服务器)。Redis是一个高性能的键值存储数据库,支持多种数据结构,如字符串、列表、哈希等。以下命令列表基于Redis通用语法,适用于Windows环境,并参考了Redis官方文档和常见实践[^1][^3]。命令格式为:`redis-cli -h [host] -p [port] -a [password] [命令]`(如未设置密码可省略`-a`参数)。以下是核心命令分类说明: #### 1. **连接与基本操作** - `PING`:测试服务器是否运行,返回`PONG`表示正常。 示例:`redis-cli PING` → 输出 `PONG` - `AUTH [password]`:认证密码(如果设置了密码)。 示例:`redis-cli -a 123456 AUTH` → 认证成功 - `SELECT [index]`:选择数据库Redis默认16个数据库,索引0-15)。 示例:`SELECT 1` → 切换到数据库1 #### 2. **键值操作** - `SET key value`:设置键值对,支持过期时间(如`SET key value EX 60`表示60秒后过期)。 示例:`SET name "Alice"` - `GET key`:获取键的值。 示例:`GET name` → 输出 `"Alice"` - `DEL key`:删除键。 示例:`DEL name` - `EXISTS key`:检查键是否存在(返回1存在,0不存在)。 示例:`EXISTS name` - `KEYS pattern`:查找匹配模式的键(`*`表示通配符)。 示例:`KEYS user*` → 列出所有以`user`开头的键[^1] #### 3. **数据结构操作** - **字符串(String)** `INCR key`:将键的值加1(用于计数器场景)。 示例:`INCR count` `APPEND key value`:追加字符串到键值末尾。 示例:`APPEND msg " world"` - **列表(List)** `LPUSH key value`:从列表左侧插入值(如实现队列)。 示例:`LPUSH tasks "task1"` `RPOP key`:从列表右侧移除并返回值。 示例:`RPOP tasks` `LLEN key`:获取列表长度。 示例:`LLEN tasks` → 输出列表元素数量 (Redis列表底层使用快速链表,元素少时为压缩列表,内存自动回收[^3]) - **集合(Set)** `SADD key member`:向集合添加成员(用于去重计数)。 示例:`SADD users "user1"` `SMEMBERS key`:列出所有成员。 示例:`SMEMBERS users` - **哈希(Hash)** `HSET key field value`:设置哈希表中的字段值。 示例:`HSET user:1 name "Bob"` `HGET key field`:获取字段值。 示例:`HGET user:1 name` → 输出 `"Bob"` - **有序集合(ZSet)** `ZADD key score member`:添加带分数的成员(用于排行榜)。 示例:`ZADD rank 100 "player1"` `ZRANGE key start stop`:按分数范围列出成员。 示例:`ZRANGE rank 0 -1 WITHSCORES` → 输出所有成员及分数[^1] #### 4. **数据库管理** - `FLUSHDB`:清空当前数据库。 示例:`FLUSHDB` - `FLUSHALL`:清空所有数据库。 示例:`FLUSHALL` - `INFO`:查看服务器状态信息(如内存使用、连接数)。 示例:`INFO memory` #### 使用提示 - **在Windows cmd中演练**:启动Redis服务器后,打开cmd窗口,输入`redis-cli`进入交互模式,直接输入上述命令。或使用完整路径如`redis-cli -h 127.0.0.1 -p 6379 SET key value`[^1][^2]。 - **安全注意**:生产环境避免使用`KEYS *`(可能阻塞服务),推荐`SCAN`命令遍历键。 - **性能特点**:Redis在Windows下读写速度可达10W+ QPS,适合缓存、计数器等高并发场景[^1]。 通过以上命令,您可以快速掌握Redis基础操作。如需深入,可参考Redis官方文档或练习数据导入(如结合MySQL管道导入[^2])。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值