windows下redis的基本命令

本文全面介绍了Redis的基本使用方法,包括启动服务、客户端连接等基础知识,并详细列举了各类数据结构的常用命令,如字符串、列表、集合及有序集合等,是Redis初学者及使用者的重要参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis 是一个开源,高级的键值对的存储。它经常作为服务端的数据结构,它的键的数据类型能够是strings, hashs, lists, sets(无序集合) 和 sorted sets(有序集合).
启动redis服务:redis-server.exe redis.windows.conf
启用客户端:redis-cli.exe

双击 redis-cli.exe 运行一个客户端,运行后可以看到redis 127.0.0.1:6379

此时可以通过一个命令来展示redis的功能。redis的命令如下:

连接控制

QUIT 关闭连接

AUTH (仅限启用时)简单的密码验证

适合全体类型的命令

EXISTS key 判断一个键是否存在;存在返回 1;否则返回0;

DEL key 删除某个key,或是一系列key;DEL key1 key2 key3 key4

TYPE key 返回某个key元素的数据类型 ( none:不存在,string:字符,list,set,zset,hash)

KEYS pattern 返回匹配的key列表 (KEYS foo*:查找foo开头的keys)

RANDOMKEY 随机获得一个已经存在的key,如果当前数据库为空,则返回空字符串

RENAME oldname newname更改key的名字,新键如果存在将被覆盖

RENAMENX oldname newname 更改key的名字,如果名字存在则更改失败

DBSIZE返回当前数据库的key的总数

EXPIRE设置某个key的过期时间(秒),(EXPIRE bruce 1000:设置bruce这个key1000秒后系统自动删除)注意:如果在还没有过期的时候,对值进行了改变,那么那个值会被清除。

TTL查找某个key还有多长时间过期,返回时间秒

SELECT index 选择数据库

MOVE key dbindex 将指定键从当前数据库移到目标数据库 dbindex。成功返回 1;否则返回0(源数据库不存在key或目标数据库已存在同名key);

FLUSHDB 清空当前数据库中的所有键

FLUSHALL 清空所有数据库中的所有键

处理字符串的命令

SET key value 给一个键设置字符串值。SET keyname datalength data (SET bruce 10 paitoubing:保存key为burce,字符串长度为10的一个字符串paitoubing到数据库),data最大不可超过1G。

GET key获取某个key 的value值。如key不存在,则返回字符串“nil”;如key的值不为字符串类型,则返回一个错误。

GETSET key value可以理解成获得的key的值然后SET这个值,更加方便的操作 (SET bruce 10 paitoubing,这个时候需要修改bruce变成1234567890并获取这个以前的数据paitoubing,GETSET bruce 10 1234567890)

MGET key1 key2 … keyN 一次性返回多个键的值

SETNX key value SETNX与SET的区别是SET可以创建与更新key的value,而SETNX是如果key不存在,则创建key与value数据

MSET key1 value1 key2 value2 … keyN valueN 在一次原子操作下一次性设置多个键和值

MSETNX key1 value1 key2 value2 … keyN valueN 在一次原子操作下一次性设置多个键和值(目标键不存在情况下,如果有一个以上的key已存在,则失败)

INCR key 自增键值

INCRBY key integer 令键值自增指定数值

DECR key 自减键值

DECRBY key integer 令键值自减指定数值

处理 lists 的命令

RPUSH key value 从 List 尾部添加一个元素(如序列不存在,则先创建,如已存在同名Key而非序列,则返回错误)

LPUSH key value 从 List 头部添加一个元素

LLEN key 返回一个 List 的长度

LRANGE key start end从自定的范围内返回序列的元素 (LRANGE testlist 0 2;返回序列testlist前0 1 2元素)

LTRIM key start end修剪某个范围之外的数据 (LTRIM testlist 0 2;保留0 1 2元素,其余的删除)

LINDEX key index返回某个位置的序列值(LINDEX testlist 0;返回序列testlist位置为0的元素)

LSET key index value更新某个位置元素的值

LREM key count value 从 List 的头部(count正数)或尾部(count负数)删除一定数量(count)匹配value的元素,返回删除的元素数量。

LPOP key 弹出 List 的第一个元素

RPOP key 弹出 List 的最后一个元素

RPOPLPUSH srckey dstkey 弹出 _srckey_ 中最后一个元素并将其压入 _dstkey_头部,key不存在或序列为空则返回“nil”

处理集合(sets)的命令(有索引无序序列)

SADD key member增加元素到SETS序列,如果元素(membe)不存在则添加成功 1,否则失败 0;(SADD testlist 3 \n one)

SREM key member 删除SETS序列的某个元素,如果元素不存在则失败0,否则成功 1(SREM testlist 3 \N one)

SPOP key 从集合中随机弹出一个成员

SMOVE srckey dstkey member 把一个SETS序列的某个元素 移动到 另外一个SETS序列 (SMOVE testlist test 3\n two;从序列testlist移动元素two到 test中,testlist中将不存在two元素)

SCARD key 统计某个SETS的序列的元素数量

SISMEMBER key member 获知指定成员是否存在于集合中

SINTER key1 key2 … keyN 返回 key1, key2, …, keyN 中的交集

SINTERSTORE dstkey key1 key2 … keyN 将 key1, key2, …, keyN 中的交集存入 dstkey

SUNION key1 key2 … keyN 返回 key1, key2, …, keyN 的并集

SUNIONSTORE dstkey key1 key2 … keyN 将 key1, key2, …, keyN 的并集存入 dstkey

SDIFF key1 key2 … keyN 依据 key2, …, keyN 求 key1 的差集。官方例子:

key1 = x,a,b,c

key2 = c

key3 = a,d

SDIFF key1,key2,key3 => x,b

SDIFFSTORE dstkey key1 key2 … keyN 依据 key2, …, keyN 求 key1 的差集并存入 dstkey

SMEMBERS key 返回某个序列的所有元素

SRANDMEMBER key 随机返回某个序列的元素

处理有序集合(sorted sets)的命令 (zsets)

ZADD key score member 添加指定成员到有序集合中,如果目标存在则更新score(分值,排序用)

ZREM key member 从有序集合删除指定成员

ZINCRBY key increment member 如果成员存在则将其增加_increment_,否则将设置一个score为_increment_的成员

ZRANGE key start end 返回升序排序后的指定范围的成员

ZREVRANGE key start end 返回降序排序后的指定范围的成员

ZRANGEBYSCORE key min max 返回所有符合score >= min和score <= max的成员 ZCARD key 返回有序集合的元素数量 ZSCORE key element 返回指定成员的SCORE值 ZREMRANGEBYSCORE key min max 删除符合 score >= min 和 score <= max 条件的所有成员

排序(List, Set, Sorted Set)

SORT key BY pattern LIMIT start end GET pattern ASC|DESC ALPHA 按照指定模式排序集合或List

SORT mylist

默认升序 ASC

SORT mylist DESC

SORT mylist LIMIT 0 10

从序号0开始,取10条

SORT mylist LIMIT 0 10 ALPHA DESC

按首字符排序

SORT mylist BY weight_*

SORT mylist BY weight_* GET object_*

SORT mylist BY weight_* GET object_* GET #

SORT mylist BY weight_* STORE resultkey

将返回的结果存放于resultkey序列(List)

持久控制

SAVE 同步保存数据到磁盘

BGSAVE 异步保存数据到磁盘

LASTSAVE 返回上次成功保存到磁盘的Unix时间戳

SHUTDOWN 同步保存到服务器并关闭 Redis 服务器(SAVE+QUIT)

BGREWRITEAOF 当日志文件过长时重写日志文件

远程控制命令

INFO 提供服务器的信息和统计信息

MONITOR 实时输出所有收到的请求

SLAVEOF 修改复制选项 

 

命令都是大写,其实小写也是可以的。

最简单的例子:
set ok ok

get ok 

具体的命令大家可以一个一个试试。

<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]。组织回答:-开头:简要介绍RedisWindows中的基本操作。-主体:列出基础命令,分组如键值操作、字符串、列表、集合等,参考引用中的内容。-结尾:总结或提示如何练习。-然后,添加相关问题。命令列表:基于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.如何安装RedisWindows上?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`命令遍历键。 - **性能特点**:RedisWindows下读写速度可达10W+ QPS,适合缓存、计数器等高并发场景[^1]。 通过以上命令,您可以快速掌握Redis的基础操作。如需深入,可参考Redis官方文档或练习数据导入(如结合MySQL管道导入[^2])。