Redis基础命令及其代码示例的完整详解

本文详细介绍了Redis的多种数据结构(字符串、列表、集合、散列、有序集合)以及相关命令,包括SET、LPUSH、RPUSH、SADD、ZADD等,展示了Redis作为内存数据存储系统的关键特性。

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

Redis 是一个非常快速的内存数据存储系统,它可以用作数据库、缓存和消息代理。它支持多种数据类型,如字符串、列表、集合、散列和有序集合。

以下是一些 Redis 的基础命令及其代码示例的完整详解。

1. Strings(字符串)

  • SET key value:将字符串值 value 关联到 key。如果 key 已经持有其他值, SET 就覆写旧值,无视其类型。
Bashredis> SET mykey "Hello World"
OK
  • GET key:获取 key 关联的值。如果 key 不存在,返回 nil。
Bashredis> GET mykey
"Hello World"

2. Lists(列表)

  • LPUSH key value1 [value2 ...]:将一个或多个值插入到列表头部。如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。当 key 存在但不是列表类型时,返回一个错误。
Bashredis> LPUSH mylist "Hello"
(integer) 1
redis> LPUSH mylist "World"
(integer) 2
  • RPUSH key value1 [value2 ...]:将一个或多个值插入到列表尾部。如果 key 不存在,一个空列表会被创建并执行 RPUSH 操作。当 key 存在但不是列表类型时,返回一个错误。
Bashredis> RPUSH mylist "!"
(integer) 3
  • LRANGE key start stop:返回列表中指定区间内的元素,区间以偏移量 start 和 stop 指定。
Bashredis> LRANGE mylist 0 -1
1) "World"
2) "Hello"
3) "!"

3. Sets(集合)

  • SADD key member1 [member2 ...]:向集合添加一个或多个成员。如果成员已经是集合的成员,那么添加操作无效。如果 key 不存在,则创建一个只包含指定成员的集合。
Bashredis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
  • SMEMBERS key:返回集合中的所有成员。如果集合不存在,返回一个空列表。
Bashredis> SMEMBERS myset
1) "Hello"
2) "World"

4. Hashes(散列)

  • HSET key field value:将哈希表 key 中的字段 field 的值设为 value。如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作。如果字段 field 已经存在于哈希表中,旧值将被覆盖。
Bashredis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
  • HGET key field:获取存储在哈希表中指定字段的值。如果指定的字段或键不存在,返回一个 nil 值。
Bashredis> HGET myhash field1
"Hello"

这只是 Redis 命令的冰山一角,还有更多的命令和特性等待你去探索和发现。你可以在 Redis 的官方文档中找到更详细和全面的信息:https://redis.io/commands

5. Sorted Sets(有序集合)

  • ZADD key score1 member1 [score2 member2 ...]:将一个或多个成员及其分数添加到有序集合中。如果成员已经存在,则更新其分数。如果 key 不存在,则创建一个新的有序集合。
Bashredis> ZADD mysortedset 1 "one"
(integer) 1
redis> ZADD mysortedset 2 "two" 3 "three"
(integer) 2
  • ZRANGE key start stop [WITHSCORES]:返回有序集合中指定区间内的成员。默认情况下,成员按分数从低到高排序。使用 WITHSCORES 选项可以同时返回分数。
Bashredis> ZRANGE mysortedset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "two"
4) "2"
5) "three"
6) "3"

6. HyperLogLogs(基数统计)

  • PFADD key element [element ...]:向 HyperLogLog 添加一个或多个元素。如果 key 不存在,则创建一个新的 HyperLogLog。
Bashredis> PFADD myhyperloglog "foo"
(integer) 1
redis> PFADD myhyperloglog "bar" "baz"
(integer) 1
  • PFCOUNT key [key ...]:返回给定 HyperLogLog 的基数估计值。如果有多个 key,则返回它们的并集的基数估计值。
Bashredis> PFCOUNT myhyperloglog
(integer) 3

7. Pub/Sub(发布/订阅)

  • SUBSCRIBE channel [channel ...]:订阅一个或多个频道,成为这些频道的订阅者。
Bashredis> SUBSCRIBE mychannel
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "mychannel"
3) (integer) 1
  • PUBLISH channel message:将消息发布到指定的频道。
Bashredis> PUBLISH mychannel "Hello, World!"
(integer) 1

8. Scripts(脚本)

  • EVAL script numkeys key [key ...] arg [arg ...]:执行 Lua 脚本。numkeys 表示传递给脚本的键的数量,key 是键列表,arg 是参数列表。
Bashredis> EVAL "return redis.call('set',KEYS[1],ARGV[1])" 1 mykey "Hello Redis"
OK

9. Keys(键操作)

  • DEL key [key ...]:删除一个或多个键。
Bashredis> SET key1 "value1"
OK
redis> DEL key1
(integer) 1
  • EXISTS key [key ...]:检查一个或多个键是否存在。
Bashredis> SET key1 "value1"
OK
redis> EXISTS key1
(integer) 1
  • TYPE key:返回键所存储值的类型。
Bashredis> TYPE key1
string
  • KEYS pattern:查找所有符合给定模式的键。
Bashredis> SET foo1 "bar"
OK
redis> SET foo2 "baz"
OK
redis> KEYS foo*
1) "foo1"
2) "foo2"

10. Connections(连接)

  • PING:检查服务是否运行正常。
Bashredis> PING
PONG
  • QUIT:关闭当前连接。
Bashredis> QUIT

这些命令只是 Redis 提供的功能的一小部分。Redis 提供了极其丰富的功能集,包括事务、Lua 脚本执行、持久化、复制等,适合各种使用场景。要深入了解 Redis,请阅读官方文档或参考相关的学习资源。

10. Transactions(事务)

  • MULTI:标记事务块的开始。
  • EXEC:执行所有事务块内的命令。
  • DISCARD:取消事务,放弃执行事务块内的所有命令。
Bashredis> MULTI
OK
redis> SET key1 "value1"
QUEUED
redis> SET key2 "value2"
QUEUED
redis> EXEC
1) OK
2) OK

11. Server(服务器)

  • PING:测试服务器是否运行正常。
Bashredis> PING
PONG
  • INFO:获取服务器的信息和统计。
Bashredis> INFO
# 这里会返回大量的服务器信息

12. Persistence(持久化)

  • SAVE:同步保存当前数据库到磁盘。
  • BGSAVE:在后台异步保存当前数据库到磁盘。
Bashredis> BGSAVE
Background saving started

13. Remote Host Connection(远程主机连接)

  • FLUSHDB:清空当前选中数据库的所有数据。
  • FLUSHALL:清空所有数据库的所有数据。
Bashredis> FLUSHDB
OK

14. Configuration(配置)

  • CONFIG GET parameter:获取指定配置参数的值。
  • CONFIG SET parameter value:设置指定配置参数的值。
Bashredis> CONFIG GET timeout
1) "timeout"
2) "0"
redis> CONFIG SET timeout 30
OK

15. Security(安全)

  • AUTH password:使用密码验证当前连接的用户。
Bashredis> AUTH mypassword
OK

16. Debugging(调试)

  • DEBUG OBJECT key:获取关于给定键的调试信息。
Bashredis> DEBUG OBJECT mykey
# 这里会返回关于键 'mykey' 的调试信息

17. Connections(连接)

  • CLIENT LIST:获取当前连接到服务器的客户端列表。
Bashredis> CLIENT LIST
# 这里会返回当前所有连接的列表

以上只是 Redis 命令的一个简短概览。实际上,Redis 提供了更多高级功能,如 Lua 脚本执行、事务控制、发布/订阅、脚本执行、内存优化等。为了全面掌握 Redis,建议参考官方文档:Commands | Redis,并尝试在实际环境中使用这些命令。此外,参加在线课程、阅读相关书籍和社区讨论也是深化理解和提高技能的好方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥仔全栈开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值