解锁速度之门:Redis

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

redis那些事儿


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 示例

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

bash 复制代码
# 设置键值
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 示例

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

bash 复制代码
# 向列表头部添加元素(左侧)
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、标签等。

bash 复制代码
# 添加元素到集合
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 示例

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

bash 复制代码
# 设置字段和值
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) 有序集合示例

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

bash 复制代码
# 添加元素及其分数
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]

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

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

相关推荐
大蚂蚁2号几秒前
Python迭代器与生成器深度剖析:从底层协议到工程实战
python
专注搞钱2 分钟前
AI编程实战:我用Python+LangChain搭建了一个半导体FAB智能运维Agent
python·langchain·ai编程
l1t4 分钟前
DeepSeek总结的从 DeepSeek 到 Quack:分布式 DuckDB 的梦想何时开始变得真实
数据库·分布式
代码丰5 分钟前
【面经】缓存一致性全套解决方案:从旁路删除到延迟双删、MQ 补偿、binlog 监听与多级缓存
缓存
小猿姐7 分钟前
MongoDB Kubernetes Operator 实测对比:Community、Percona 与 KubeBlocks,谁更适合团队落地?
数据库·mongodb·kubernetes
财经资讯数据_灵砚智能8 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年6月3日
大数据·人工智能·python·信息可视化·自然语言处理·灵砚智能
开源量化GO9 分钟前
期货量化价差合约怎么订:天勤 SP 组合代码与订阅注意点
python·区块链
财经资讯数据_灵砚智能9 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年5月30日
人工智能·python·信息可视化·自然语言处理·ai编程·灵砚智能
AI玫瑰助手12 分钟前
Python函数:global与nonlocal关键字的使用
开发语言·python·信息可视化