数据的存储--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

相关文章
|
1天前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(二)
数据的存储--Redis缓存存储(二)
10 2
数据的存储--Redis缓存存储(二)
|
1天前
|
缓存 NoSQL Java
springboot的缓存和redis缓存,入门级别教程
本文介绍了Spring Boot中的缓存机制,包括使用默认的JVM缓存和集成Redis缓存,以及如何配置和使用缓存来提高应用程序性能。
9 1
springboot的缓存和redis缓存,入门级别教程
|
2天前
|
缓存 NoSQL 关系型数据库
redis和缓存及相关问题和解决办法 什么是缓存预热、缓存穿透、缓存雪崩、缓存击穿
本文深入探讨了Redis缓存的相关知识,包括缓存的概念、使用场景、可能出现的问题(缓存预热、缓存穿透、缓存雪崩、缓存击穿)及其解决方案。
10 0
redis和缓存及相关问题和解决办法 什么是缓存预热、缓存穿透、缓存雪崩、缓存击穿
|
27天前
|
canal 缓存 NoSQL
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
根据对一致性的要求程度,提出多种解决方案:同步删除、同步删除+可靠消息、延时双删、异步监听+可靠消息、多重保障方案
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
|
2月前
|
缓存 NoSQL Java
Redis深度解析:解锁高性能缓存的终极武器,让你的应用飞起来
【8月更文挑战第29天】本文从基本概念入手,通过实战示例、原理解析和高级使用技巧,全面讲解Redis这一高性能键值对数据库。Redis基于内存存储,支持多种数据结构,如字符串、列表和哈希表等,常用于数据库、缓存及消息队列。文中详细介绍了如何在Spring Boot项目中集成Redis,并展示了其工作原理、缓存实现方法及高级特性,如事务、发布/订阅、Lua脚本和集群等,帮助读者从入门到精通Redis,大幅提升应用性能与可扩展性。
61 0
|
2天前
|
缓存 NoSQL 算法
解决Redis缓存雪崩问题的有效方法
解决Redis缓存雪崩问题的有效方法
9 1
|
27天前
|
存储 NoSQL Redis
SpringCloud基础7——Redis分布式缓存,RDB,AOF持久化+主从+哨兵+分片集群
Redis持久化、RDB和AOF方案、Redis主从集群、哨兵、分片集群、散列插槽、自动手动故障转移
SpringCloud基础7——Redis分布式缓存,RDB,AOF持久化+主从+哨兵+分片集群
|
6天前
|
缓存 NoSQL Java
Springboot自定义注解+aop实现redis自动清除缓存功能
通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
24 2
|
11天前
|
存储 缓存 NoSQL
解决Redis缓存击穿问题的技术方法
解决Redis缓存击穿问题的技术方法
30 2