redis(1)

1.redis的图形化桌面客户端

2.RDM的使用

有16个库通过select几来切换库!!!

3.redis数据结构

以下是 Redis 常见数据结构的说明和示例:

1. 字符串 (String)

  • 描述:字符串是 Redis 中最基本的类型。它可以存储任何类型的字符串,包括二进制数据(例如图片或视频文件的字节流)。
  • 操作 :SET, GET, INCR, DECR, APPEND 等。

示例:

复制代码

bashCopy Code

java 复制代码
SET name "Alice" # 设置键名 "name" 的值为 "Alice" GET name # 获取键名 "name" 的值,返回 "Alice" INCR age # 如果键名 "age" 存在,递增其值

2. 列表 (List)

  • 描述:Redis 列表是一个简单的链表,支持从两端推入和弹出元素。可以进行非常高效的插入操作。
  • 操作 :LPUSH, RPUSH, LPOP, RPOP, LRANGE 等。

示例:

复制代码

bashCopy Code

bash 复制代码
LPUSH fruits "apple" # 在列表左边推入 "apple" RPUSH fruits "banana" # 在列表右边推入 "banana" LRANGE fruits 0 -1 # 获取列表中所有元素,返回 ["apple", "banana"] LPOP fruits # 从列表左边弹出 "apple"

3. 集合 (Set)

  • 描述:集合是一个无序且不重复的元素集合,支持常见的集合操作,如交集、并集和差集。
  • 操作 :SADD, SREM, SMEMBERS, SINTER, SUNION 等。

示例:

复制代码

bashCopy Code

bash 复制代码
SADD pets "dog" "cat" # 向集合 "pets" 中添加元素 "dog" 和 "cat" SMEMBERS pets # 获取集合 "pets" 中的所有元素,返回 ["dog", "cat"] SREM pets "cat" # 从集合中移除元素 "cat"

4. 有序集合 (Sorted Set)

  • 描述:有序集合是集合的扩展,每个元素都有一个关联的分数 (score),根据分数对集合中的元素进行排序。不同于集合 (Set),有序集合中的元素是可以重复的,但它们的分数会影响排序。
  • 操作 :ZADD, ZREM, ZRANGE, ZRANK, ZINCRBY 等。

示例:

复制代码

bashCopy Code

cs 复制代码
ZADD leaderboard 100 "Alice" 200 "Bob" 150 "Charlie" # 向有序集合中添加元素并指定分数 ZRANGE leaderboard 0 -1 WITHSCORES # 获取所有元素,按分数排序,返回 [ "Alice", "100", "Charlie", "150", "Bob", "200" ] ZINCRBY leaderboard 50 "Alice" # 增加 Alice 的分数 50

5. 哈希 (Hash)

  • 描述:哈希是一个键值对集合,类似于 Python 中的字典或者 Java 中的 HashMap。每个哈希表的键和值都是字符串类型。
  • 操作 :HSET, HGET, HDEL, HGETALL 等。

示例:

复制代码

bashCopy Code

diff 复制代码
HSET user:1000 name "Alice" age "25" city "New York" # 向哈希表 "user:1000" 中添加键值对 HGET user:1000 name # 获取 "user:1000" 哈希表中 "name" 的值,返回 "Alice" HGETALL user:1000 # 获取 "user:1000" 哈希表中的所有键值对

6. 位图 (Bitmap)

  • 描述 :位图是一种对位进行操作的特殊数据结构,通常用来表示布尔值(0 或 1)。在 Redis 中,位图通过 SETBIT 和 GETBIT 操作实现,可以用于实现如签到系统、在线状态等应用。
  • 操作 :SETBIT, GETBIT, BITCOUNT 等。

示例:

复制代码

bashCopy Code

bash 复制代码
SETBIT mybit 7 1 # 设置第 7 位为 1 GETBIT mybit 7 # 获取第 7 位的值,返回 1 BITCOUNT mybit # 统计位图中值为 1 的位数

7. HyperLogLog

  • 描述:HyperLogLog 是一种用于进行基数估算的数据结构。它可以用来统计大量数据的基数 (如唯一用户数量),但其特点是占用内存非常小。
  • 操作 :PFADD, PFCOUNT, PFMERGE 等。

示例:

复制代码

bashCopy Code

cpp 复制代码
PFADD visitors "user1" "user2" "user3" # 添加多个元素到 HyperLogLog 中 PFCOUNT visitors # 获取基数估算值,返回 3

8. 地理空间 (Geo)

  • 描述:Redis 提供了地理空间支持,可以用来存储和查询带有经纬度信息的元素,支持计算两点之间的距离、获取附近的元素等。
  • 操作 :GEOADD, GEODIST, GEORADIUS 等。

示例:

复制代码

bashCopy Code

cpp 复制代码
GEOADD locations 13.361389 38.115556 "Palermo" # 添加地理坐标 GEOADD locations 15.087269 37.502669 "Catania" GEODIST locations "Palermo" "Catania" # 计算 "Palermo" 和 "Catania" 之间的距离

9. 流 (Stream)

  • 描述:Redis 5.0 引入了流 (Stream) 数据类型,可以用于处理消息队列。流是一种日志型数据结构,可以用于保存事件日志。
  • 操作 :XADD, XREAD, XDEL, XTRIM 等。

示例:

复制代码

bashCopy Code

Dart 复制代码
XADD mystream * sensor-id 1234 temperature 19.8 XREAD BLOCK 0 STREAMS mystream 0 # 阻塞读取流

总结

Redis 提供了丰富的数据结构,适用于多种不同场景。通过这些数据结构,开发者可以在高性能的基础上实现丰富的功能,满足各种业务需求。对于高频次的查询和更新,Redis 是非常高效的,特别适合用于缓存、消息队列、计数器、排行榜、实时统计等应用。

4.redis通用命令

相关推荐
catoop1 小时前
API Key 设计与安全生成方案:结构拆解、数据库设计与 Java 实现
java·数据库·安全
Web极客码1 小时前
我用 Claude 分析 Redis 哨兵日志,实现跨机房数据不一致自动对齐
数据库·redis·php
库库的数据库笔记1 小时前
国产信创数据库的MySQL兼容性深度对比解析
大数据·数据库·mysql·oceanbase·政务
microrain2 小时前
SagooIoT 的缓存换后端只改一行配置,文件后端连 Redis 都不需要
物联网·缓存·golang·sagooiot
姚远Oracle ACE2 小时前
为什么无法连接到 PostgreSQL?
数据库·postgresql
ss2732 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 22 PostgreSQL实例与集群
数据库·笔记·postgresql
ss2732 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 21 PostgreSQL进程与内存架构介绍
数据库·笔记·postgresql
Henry-SAP4 小时前
SAP PP模块全景概览
数据库
喜欢吃豆4 小时前
Better Auth 深度解析:从用户认证到企业级身份基础设施
数据库·架构·权限·多租户