当前位置: 首页 > article >正文

解锁速度之门:Redis

课程:B站大学
记录python学习,直到学会基本的爬虫,使用python搭建接口自动化测试就算学会了,在进阶webui自动化,app自动化

redis那些事儿

    • 1、redis概念
    • 2、redis数据结构
    • 3、多种持久化方式
    • 4、redis常用命令
      • 1.键值操作
      • 2.数据结构操作
    • 5、redis实操
      • 1. String 示例
      • 2. List 示例
      • 3. Set 无需集合示例
      • 4. Hash 示例
      • 5. Sorted Set (ZSet) 有序集合示例
    • 实践是检验真理的唯一标准


# rdis必学基础知识、

1、redis概念

Redis 是一个开源的高性能内存键值数据库,支持多种数据结构和多种持久化方式。它被广泛应用于缓存、实时分析、消息队列、会话管理等场景。

2、redis数据结构

  • String:普通字符串,可以存储文本或二进制数据。

  • List:链表,可以用作队列或栈。

  • Set:无序集合,支持交集、并集等操作。

  • Sorted Set (ZSet):有序集合,元素带有分数用于排序。

  • Hash:键值对集合,适合存储对象数据。

  • Stream:日志流,适合消息队列或数据记录。

3、多种持久化方式

RDB (Redis DataBase):定期将数据快照存储到磁盘。

AOF (Append Only File):将每次写操作追加到日志文件中,数据恢复更细粒度。

4、redis常用命令

1.键值操作

  • SET key value:设置键值。
  • GET key:获取键值。
  • DEL key:删除键。
  • EXPIRE key seconds:设置键的过期时间。

2.数据结构操作

  • String: INCR keyAPPEND key value
  • List: LPUSH key valueLRANGE key start stop
  • Set: SADD key valueSMEMBERS key
  • Hash: HSET key field valueHGET key field
  • Sorted Set: ZADD key score valueZRANGE key start stop

5、redis实操

以下是关于 Redis 各种数据类型的常用命令示例,这些示例包括 StringListSetHashSorted Set,并以常见场景举例:


1. String 示例

适用场景:简单的键值对存储,如计数器或缓存。

# 设置键值
SET my_key "Hello, Redis!"
# 获取键值
GET my_key
# 结果: "Hello, Redis!"

# 自增(适合计数器场景)
SET counter 100
INCR counter
# 结果: 101
INCR counter
# 结果: 102

# 追加值
APPEND my_key " How are you?"
GET my_key
# 结果: "Hello, Redis! How are you?"

2. List 示例

适用场景:任务队列、消息列表、时间序列等。

# 向列表头部添加元素(左侧)
LPUSH my_list "task1"
LPUSH my_list "task2"
LPUSH my_list "task3"

# 获取列表中的元素
LRANGE my_list 0 -1
# 结果: ["task3", "task2", "task1"]

# 弹出元素(移除第一个任务)
LPOP my_list
# 结果: "task3"

# 再次查看列表
LRANGE my_list 0 -1
# 结果: ["task2", "task1"]

3. Set 无需集合示例

适用场景:存储唯一值集合,如用户 ID、标签等。

# 添加元素到集合
SADD my_set "user1"
SADD my_set "user2"
SADD my_set "user3"
SADD my_set "user1"  # 重复添加无效

# 查看集合中的所有元素
SMEMBERS my_set
# 结果: ["user1", "user2", "user3"]

# 判断某个值是否在集合中
SISMEMBER my_set "user2"
# 结果: 1 (true)
SISMEMBER my_set "user4"
# 结果: 0 (false)

# 移除集合中的某个值
SREM my_set "user1"
SMEMBERS my_set
# 结果: ["user2", "user3"]

4. Hash 示例

适用场景:存储对象数据,如用户信息、商品属性等。

# 设置字段和值
HSET user:1001 name "Alice"
HSET user:1001 age 30
HSET user:1001 city "New York"

# 获取某个字段的值
HGET user:1001 name
# 结果: "Alice"

# 获取整个哈希
HGETALL user:1001
# 结果: ["name", "Alice", "age", "30", "city", "New York"]

# 修改字段值
HSET user:1001 age 31
HGET user:1001 age
# 结果: 31

# 删除字段
HDEL user:1001 city
HGETALL user:1001
# 结果: ["name", "Alice", "age", "31"]

5. Sorted Set (ZSet) 有序集合示例

适用场景:排行榜、优先级队列等。

# 添加元素及其分数
ZADD leaderboard 100 "Alice"
ZADD leaderboard 200 "Bob"
ZADD leaderboard 150 "Charlie"

# 按分数升序获取排行榜
ZRANGE leaderboard 0 -1 WITHSCORES
# 结果: ["Alice", 100, "Charlie", 150, "Bob", 200]

# 按分数降序获取排行榜
ZREVRANGE leaderboard 0 -1 WITHSCORES
# 结果: ["Bob", 200, "Charlie", 150, "Alice", 100]

# 获取某个成员的分数
ZSCORE leaderboard "Charlie"
# 结果: 150

# 增加成员的分数
ZINCRBY leaderboard 50 "Alice"
ZRANGE leaderboard 0 -1 WITHSCORES
# 结果: ["Charlie", 150, "Alice", 150, "Bob", 200]

该说不说,我还是那句话,提升的过程往往是需要坚持下去的,愿你我都遇到自己的浪漫。

实践是检验真理的唯一标准


http://www.kler.cn/a/513987.html

相关文章:

  • Asp.Net Core 8.0 使用 Serilog 按日志级别写入日志文件的两种方式
  • Cursor的详细使用指南
  • 以Python构建ONE FACE管理界面:从基础至进阶的实战探索
  • 事件和方法
  • 深度学习python基础(第三节) 函数、列表
  • 【回忆迷宫——处理方法+DFS】
  • 《C++ primer plus》第六版课后编程题-第05章
  • root用户Linux银河麒麟服务器安装vnc服务
  • Java设计模式 六 原型模式 (Prototype Pattern)
  • TRELLIS微软的图生3D
  • 基于 MDL 行情插件的中金所 L1 数据处理最佳实践
  • 【Linux】多线程(二)
  • Linux:常用命令--文件与目录操作
  • docker构建Java项目镜像常用的Java版本,国内私有仓库公网快速下载,解决从docker.io无法下载的问题
  • 【Elasticsearch】腾讯云安装Elasticsearch
  • C#集合操作优化:高效实现批量添加与删除
  • vue3+uniapp开发鸿蒙初体验
  • 【图像处理】——掩码
  • C#防止重复提交
  • Unity中两个UGUI物体的锚点和中心点设置成不一样的,然后怎么使两个物体的位置一样?
  • vsftpd虚拟用户部署
  • MATLAB中characterListPattern函数用法
  • 【爱上C++】vector用法详解
  • 案例分析一
  • MySQL新建和删除普通用户
  • Mac苹果电脑 怎么用word文档和Excel表格?