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 中,位图通过 SETBITGETBIT 操作实现,可以用于实现如签到系统、在线状态等应用。
  • 操作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通用命令

相关推荐
言德斐1 天前
SQL性能优化的思路及策略
数据库·sql·性能优化
码界奇点1 天前
Django视图从基础到高级的全面解析
数据库·django·sqlite·web·python3.11
Allan_20251 天前
数据库学习
数据库·学习
fen_fen1 天前
人大金仓数据库kingbase8创建表示例
数据库·oracle
一勺菠萝丶1 天前
「您的连接不是私密连接」详解:为什么 HTTPS 证书会报错,以及如何正确配置子域名证书
数据库·网络协议·https
²º²²এ松1 天前
蓝牙低功耗(BLE)通信的中心设备/外围设备(连接角色)、主机/从机(时序角色)、客户端/服务器(数据交互角色)的理解
运维·服务器·数据库
百锦再1 天前
Vue Scoped样式混淆问题详解与解决方案
java·前端·javascript·数据库·vue.js·学习·.net
数据库知识分享者小北1 天前
云栖重磅|瑶池数据库:从云原生数据底座向“AI就绪”的多模态数据底座演进
数据库·人工智能·云原生
_Johnny_1 天前
Redis 升级操作指南:单机与主从模式
数据库·redis·缓存
不爱洗脚的小滕1 天前
【Redis】三种缓存问题(穿透、击穿、双删)的 Golang 实践
redis·缓存·golang