【自学笔记】Redis基础知识点总览-持续更新

devtools/2025/3/19 3:22:02/

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • Redis基础知识点总览
    • 1. Redis简介
    • 2. Redis数据类型
      • 2.1 字符串(String)
      • 2.2 哈希(Hash)
      • 2.3 列表(List)
      • 2.4 集合(Set)
      • 2.5 有序集合(Sorted Set)
    • 3. Redis高级特性
      • 3.1 发布/订阅(Pub/Sub)
      • 3.2 事务
      • 3.3 Lua脚本
      • 3.4 持久化
    • 4. Redis应用场景
  • 总结



Redis基础知识点总览

1. Redis简介

Redis(Remote Dictionary Server)是一个开源的使用内存网络来存储数据、支持多种类型的数据结构(如字符串、哈希、列表、集合、有序集合、位图、HyperLogLogs等)的NoSQL数据库。

2. Redis数据类型

2.1 字符串(String)

字符串是Redis最基本的数据类型,可以存储任何形式的字符串(包括二进制数据)。

示例代码

import redis# 连接到Redis服务器
r = redis.Redis(host='localhost', port=6379, db=0)# 设置键值对
r.set('name', 'Alice')# 获取值
name = r.get('name')
print(name.decode('utf-8'))  # 输出: Alice

2.2 哈希(Hash)

哈希是键值对的集合,适合存储对象。

示例代码

# 设置哈希
r.hset('user:1000', 'name', 'Alice')
r.hset('user:1000', 'age', 30)# 获取哈希中的值
user_name = r.hget('user:1000', 'name')
user_age = r.hget('user:1000', 'age')
print(user_name.decode('utf-8'), user_age.decode('utf-8'))  # 输出: Alice 30

2.3 列表(List)

列表是字符串的有序集合,可以从两端添加或移除元素。

示例代码

# 向列表左侧添加元素
r.lpush('my_list', 'element1')
r.lpush('my_list', 'element2')# 向列表右侧添加元素
r.rpush('my_list', 'element3')# 获取列表中的所有元素
my_list = r.lrange('my_list', 0, -1)
print([item.decode('utf-8') for item in my_list])  # 输出: ['element2', 'element1', 'element3']

2.4 集合(Set)

集合是无序的字符串集合,每个元素都是唯一的。

示例代码

# 添加元素到集合
r.sadd('my_set', 'element1')
r.sadd('my_set', 'element2')
r.sadd('my_set', 'element3')# 获取集合中的所有元素
my_set = r.smembers('my_set')
print([item.decode('utf-8') for item in my_set])  # 输出可能是: ['element1', 'element3', 'element2'](集合无序)

2.5 有序集合(Sorted Set)

有序集合与集合类似,但每个元素都与一个分数相关联,按分数排序。

示例代码

# 添加元素到有序集合
r.zadd('my_zset', {'element1': 1, 'element2': 2, 'element3': 3})# 获取有序集合中的所有元素及其分数
my_zset = r.zrange('my_zset', 0, -1, withscores=True)
for elem, score in my_zset:print(elem.decode('utf-8'), score)  # 输出: element1 1.0, element2 2.0, element3 3.0

3. Redis高级特性

3.1 发布/订阅(Pub/Sub)

Redis的发布/订阅模式允许消息发送者(发布者)将消息发送到频道,消息接收者(订阅者)订阅频道并接收消息。

3.2 事务

Redis事务允许将多个命令打包成一个单独的原子操作,确保所有命令都按顺序执行。

3.3 Lua脚本

Redis支持Lua脚本,可以在服务器上执行复杂的逻辑,减少网络往返次数。

3.4 持久化

Redis提供两种持久化机制:RDB(快照)和AOF(追加文件)。

  • RDB:定期将内存中的数据快照写入磁盘。
  • AOF:记录每次写操作命令,并在服务器重启时重新执行这些命令来恢复数据。

4. Redis应用场景

  • 缓存系统
  • 计数器
  • 发布/订阅系统
  • 实时分析系统
  • 消息队列

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,自学记录Redis基础知识点总览。


http://www.ppmy.cn/devtools/168227.html

相关文章

《解锁华为黑科技:MindSpore+鸿蒙深度集成奥秘》

在数字化浪潮汹涌澎湃的当下,人工智能与操作系统的融合已成为推动科技发展的核心驱动力。华为作为科技领域的先锋,其AI开发框架MindSpore与鸿蒙系统的深度集成备受瞩目,开启了智能生态的新篇章。 华为MindSpore:AI框架的创新先锋…

T2.小牛架炮 - 美团机试真题题解

题目描述 在无限大的棋盘中有n个炮,第个炮的坐标是(xi,yi)。 已知每个炮的攻击方式是:先选一个攻击方向(上、下、左、右),该方向上看见的第一个棋子为“炮架”,该炮可以通过炮架攻击到炮架后面的棋子(只能攻击到炮架后面的第一个…

Python 基础知识整理笔记

闹麻了,因为各种原因,现在需要重新回顾一下Python,话不多说,开始吧 1. Python是解释型语言 && Python与C代码执行过程的区别: (1)C 源码(Source):C的…

PHP语言的开源贡献

PHP语言的开源贡献及其影响 引言 在互联网技术飞速发展的今天,开源软件已经成为了软件开发的重要组成部分。它不仅改变了我们开发和使用软件的方式,更在促进技术共享、推动创新和降低开发成本等方面发挥了重要作用。而在众多的开源项目中,P…

组播实验--IGMP、IGMP Snooping 及 PIM-DM 协议

4台路由器之间运行OSPF路由协议,均创建Loopback0,IP地址为10.0.x.x/32。4台路由器之间构成一个组播网络,AR1作为第一跳路由器连接组播源239.0.0.12,AR4作为最后一跳路由器连接组播组239.0.0.12的接收者,为了能够让组播…

鸿蒙 Next 实现线程之间的通信

鸿蒙 Next 实现线程之间的通信 在鸿蒙 Next 开发中,线程间通信是一个常见需求,尤其是在多线程任务处理中。鸿蒙 Next 提供了多种机制来实现线程间通信,包括事件驱动的 Emitter、共享内存 SharedArrayBuffer 以及基于消息传递的 Worker 和 Ta…

通过 CSS 的 命名页面(Named Pages) 技术实现作用域隔离,实现 @page 样式仅影响当前组件

以下是实现 page 样式仅影响当前组件的完整解决方案&#xff0c;通过 CSS 的 命名页面&#xff08;Named Pages&#xff09; 技术实现作用域隔离&#xff1a; vue <template><div><button v-print"printOptions">打印当前报表</button><…

MySQL复习笔记

文章目录 1.MySQL1.1什么是数据库1.2 数据库分类1.3 MySQL简介1.4连接数据库 2. 操作数据库2.1 操作数据库2.2 数据库的列类型2.3 数据库的字段属性&#xff08;重点&#xff09;2.4 创建数据库表&#xff08;重点&#xff09;2.5 数据表的类型2.6 修改数据表 3. MySQL 数据管理…