数据的存储--Redis缓存存储(一)

简介: 数据的存储--Redis缓存存储(一)

Redis缓存存储
Redis是一个基于内存的 、高效的键值型非关系型数据库,存取效率极高,而且支持多种数据存储结构,使用起来也非常简单。

1.准备工作
安装Redis并能正常运行。除了安装好Redis数据库外,还需要安装好redis-py库,即用来操作Redis的Python包,可以使用pip3来安装:

pip3 install redis

2.Redis和StrictRedis
redis-py库提供Redis和StrictRedis两个类,用来实现Redis命令对应的操作。

StrictRedis类实现了绝大部分官方的Redis命令,参数也一一对应,例如set方法就对应Redis命令的set方法。而Redis类是StrictRedis类的子类,其主要功能是向后兼容旧版本库里的几个方法。为了实现兼容,Redis类是StrictRedis类的子类,其主要功能是向后兼容旧版库里的几个方法。为了实现兼容,Redis类对方法做了改写,例如将lrem方法中value和num参数的位置互换,这和Redis命令行的命令参数是不一致的。官方推荐使用StrictRedis类。

3.连接Redis
我们先在本地安装好Redis,并运行在6379端口,将密码设置为123456。可以用如下实例连接Redis并测试:

from redis import StrictRedis

redis = StrictRedis(host='localhost', port=6379, db=0, password='123456')
redis.set('name', 'Bob')
print(redis.get('name'))

这里传入了Redis的地址、运行端口、使用的数据库和密码信息。在默认不传数据的情况下,这4个参数分别为localhost、6379、0和None。然后声明了一个StrictRedis对象,并调用对象的set()方法,设置了一个键值对。最后调用get方法获取了设置的键值并打印出来。

运行结果如下:

b'Bob'

这说明我们成功连接了Redis,并且可以执行set和get操作了。

当然,还可使用ConnectionPool来连接Redis,实例代码如下:

from redis import StrictRedis, ConnectionPool

pool = ConnectionPool(host='localhost', port=6379, db=0, password='123456')
redis = StrictRedis(connection_pool=pool)

这样的连接效果是一样的。观察源码可以发现,StrictRedis内其实就是用host和port等参数又构造了一个ConnectionPool,所以直接将ConnectionPool当作参数传给StrictRedisy也一样。

另外,ConnectionPool还支持通过URL来构建连接。URL支持的格式有如下3种:

redis://[:password]@host:port/db
rediss://[:password]@host:port/db
unix://[:password]@/path/to/socket.sock?db=db

这3种URL分别表示创建Redis TCP连接、Redis TCP+SSL连接、Redis UNIX socket连接。我们只需要构造其中任意一种即可,其中password部分如果有则可以写上,如果没有也可以省略。下面再用URL连接演示一下:

url = 'redis://123456@localhost:6379/0'
pool = ConnectionPool.from_url(url)
redis = StrictRedis(connection_pool=pool)

这里我们使用的是第一种格式。首先,声明一个Redis连接字符串,然后调用from_url方法创建ConnectionPool,接着将其传给StrictRedis即可完成连接,所以使用URL的连接方式还是比较方便的。

4.键操作

键的一些判断和操作方法

image.png
image.png
接下文 数据的存储--Redis缓存存储(二)https://developer.aliyun.com/article/1618959

相关文章
|
10月前
|
Web App开发 存储 缓存
如何精准清除特定类型或标签的缓存数据?
如何精准清除特定类型或标签的缓存数据?
809 57
|
7月前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
761 25
|
8月前
|
存储 缓存 NoSQL
Redis专题-实战篇二-商户查询缓存
本文介绍了缓存的基本概念、应用场景及实现方式,涵盖Redis缓存设计、缓存更新策略、缓存穿透问题及其解决方案。重点讲解了缓存空对象与布隆过滤器的使用,并通过代码示例演示了商铺查询的缓存优化实践。
344 1
Redis专题-实战篇二-商户查询缓存
|
7月前
|
缓存 运维 监控
Redis 7.0 高性能缓存架构设计与优化
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Redis 7.0高性能缓存架构,探索函数化编程、多层缓存、集群优化与分片消息系统,用代码在二进制星河中谱写极客诗篇。
1335 3
|
8月前
|
存储 消息中间件 缓存
Redis 简介:打造快速数据存储的利器
Redis 是一款开源的内存数据结构服务器,支持字符串、哈希、列表等多种数据结构,具备高性能、持久化、高可用及分布式特性,适用于缓存、会话管理、实时统计等场景。
|
9月前
|
存储 缓存 监控
一次缓存引发的文件系统数据不一致问题排查与深度解析
本文详述了一次由自研分布式文件系统客户端 EFC 的缓存架构更新所引发的严重数据不一致问题的完整排查过程。
一次缓存引发的文件系统数据不一致问题排查与深度解析
|
8月前
|
缓存 NoSQL 关系型数据库
Redis缓存和分布式锁
Redis 是一种高性能的键值存储系统,广泛用于缓存、消息队列和内存数据库。其典型应用包括缓解关系型数据库压力,通过缓存热点数据提高查询效率,支持高并发访问。此外,Redis 还可用于实现分布式锁,解决分布式系统中的资源竞争问题。文章还探讨了缓存的更新策略、缓存穿透与雪崩的解决方案,以及 Redlock 算法等关键技术。
|
11月前
|
存储 缓存 NoSQL
告别数据僵尸!Redis实现自动清理过期键值对
在数据激增的时代,Redis如同内存管理的智能管家,支持键值对的自动过期功能,实现“数据保鲜”。通过`EXPIRE`设定生命倒计时、`TTL`查询剩余时间,结合惰性删除与定期清理策略,Redis高效维护内存秩序。本文以Python实战演示其过期机制,并提供最佳实践指南,助你掌握数据生命周期管理的艺术,让数据优雅退场。
593 0
|
存储 缓存 NoSQL
Spring Boot2.5 实战 MongoDB 与高并发 Redis 缓存|学习笔记
快速学习 Spring Boot2.5 实战 MongoDB 与高并发 Redis 缓存
Spring Boot2.5 实战 MongoDB 与高并发 Redis 缓存|学习笔记
|
缓存 NoSQL 安全
6.0Spring Boot 2.0实战 Redis 分布式缓存6.0|学习笔记
快速学习6.0Spring Boot 2.0实战 Redis 分布式缓存6.0。
653 0
6.0Spring Boot 2.0实战 Redis 分布式缓存6.0|学习笔记