全部
常见问题
产品动态
精选推荐

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

管理 管理 编辑 删除


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

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

1. Strings(字符串)

  • SET key value:将字符串值 value 关联到 key。如果 key 已经持有其他值, SET 就覆写旧值,无视其类型。
Bashredis> SET mykey "Hello World"
OK
13373832873
  • 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,建议参考官方文档:https://redis.io/commands,并尝试在实际环境中使用这些命令。此外,参加在线课程、阅读相关书籍和社区讨论也是深化理解和提高技能的好方法。



请登录后查看

Mr.李@TIKOOG 最后编辑于2024-06-24 14:52:07

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
612
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
{{item.label}} {{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
加精
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服