如何使用 Python 本地客户端操作读写云服务器 Redis 缓存数据库详细教程(更新中)

在这里插入图片描述
宝塔面板 redis 管理 > 配置文件

将 bind 127.0.0.1 ::1 修改为 bind 0.0.0.0 (指所有的地址都可以访问,不建议此操作,仅供测试,因为一旦 bind 0.0.0.0 之后任何 IP 都能连接访问 redis 数据库,非常不安全)

这里的 bind 指的是只有指定的网段才能远程访问这个 redis。 注释掉后,就没有这个限制了。或者 bind 自己所在的网段。

在这里插入图片描述

将 protected-mode 要设置成 no (默认是设置成 yes 的, 防止了远程访问,在redis 3.2.3 版本后)

在这里插入图片描述
配置远程连接密码:取消注释 requirepass foobared,将 foobared 改成任意密码,用于验证登录。默认是没有密码的就可以访问的,我们这里最好设置一个密码。

在这里插入图片描述

特别注意:更新配置文件 bind 0.0.0.0 需要重启 redis 服务

本地连接测试

import redis

host = '124.222.115.238'
port = 6379
r = redis.Redis(host=host, port=port)

r.set("name", "唤醒手腕")
print(r.get("name"))

    raise TimeoutError("Timeout connecting to server")
redis.exceptions.TimeoutError: Timeout connecting to server

测试发现请求超时(通过站长工具扫描端口)

在这里插入图片描述
特别提醒(借助宝塔面板需要面板端口开放设置中 6379 也同时放行)

在这里插入图片描述
配置完成之后测试结果

b'\xe5\x94\xa4\xe9\x86\x92\xe6\x89\x8b\xe8\x85\x95'

需要开启解码返回

在 Python 的 redis 库中,decode_responses 是一个配置选项,用于控制从 Redis 服务器接收的响应是否应该被自动解码为字符串。默认情况下,decode_responses 被设置为 False,这意味着响应会以字节(bytes)形式返回。当你设置 decode_responses 为True时,所有的响应都会被自动解码为 UTF-8 字符串。

import redis

host = 'xxx.xxx.xxx.xxx'
port = 6379
r = redis.Redis(host=host, port=port, password="foobared", decode_responses=True)

r.set("name", "唤醒手腕")
print(r.get("name"))

Sort Set 读写操作

创建一个 Redis 连接

import redis  
  
host = 'xxx.xxx.xxx.xxx'
port = 6379
r = redis.Redis(host=host, port=port, password="foobared", decode_responses=True)

添加一些成员到有序集合中并指定分数

r.zadd('leaderboard', {'Alice': 1000, 'Bob': 1200, 'Charlie': 1100})  

获取有序集合的所有成员和分数

members_with_scores = r.zrange('leaderboard', withscores=True)  
print(members_with_scores)  # 输出: [('Alice', 1000.0), ('Charlie', 1100.0), ('Bob', 1200.0)]  

获取有序集合的成员数量

member_count = r.zcard('leaderboard')  
print(member_count)  # 输出: 3  

获取有序集合中分数最高的成员

top_member = r.zrevrange('leaderboard', 0, 0, withscores=True)  
print(top_member)  # 输出: [('Bob', 1200.0)]  

获取有序集合中分数在指定范围内的成员

members_in_range = r.zrangebyscore('leaderboard', 1000, 1100, withscores=True)  
print(members_in_range)  # 输出: [('Alice', 1000.0), ('Charlie', 1100.0)]  

更新有序集合中某个成员的分数

r.zincrby('leaderboard', 50, 'Alice')  

再次获取有序集合的所有成员和分数 查看 Alice 的分数变化

updated_members_with_scores = r.zrange('leaderboard', withscores=True)  
print(updated_members_with_scores)  # 输出可能包括 Alice 的新分数  

删除有序集合中的某个成员
r.zrem(‘leaderboard’, ‘Alice’)

再次获取有序集合的所有成员和分数 查看 Alice 是否已被删除

final_members_with_scores = r.zrange('leaderboard', withscores=True)  
print(final_members_with_scores)  # 输出将不再包含 Alice
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/df7d15b500041c61672307f477b2298a.png)

 

![img](https://img-blog.csdnimg.cn/img_convert/b5b4f300b8ab1444eff79c635c702fb6.png)

![img](https://img-blog.csdnimg.cn/img_convert/46506ae54be168b93cf63939786134ca.png)

![img](https://img-blog.csdnimg.cn/img_convert/252731a671c1fb70aad5355a2c5eeff0.png)

![img](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)

![img](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)**

67243c1008edf79.png)

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)**

<img src="https://img-community.csdnimg.cn/images/fd6ebf0d450a4dbea7428752dc7ffd34.jpg" alt="img" style="zoom:50%;" />
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python可以使用redis-py库和pymongo库来操作Redis和MongoDB。 要使用Redis作为缓存,可以使用redis-py库。首先需要安装redis-py库,然后在Python代码导入redis模块。接下来,可以使用redis模块的相关方法来与Redis进行交互。例如,可以使用set方法将数据缓存Redis使用get方法从Redis获取数据。此外,还可以使用expire方法为缓存设置过期时间,使用delete方法从Redis删除缓存等。 要使用MongoDB作为主数据库,可以使用pymongo库。首先需要安装pymongo库,然后在Python代码导入pymongo模块。接下来,可以使用pymongo模块的相关方法来与MongoDB进行交互。例如,可以使用insert_one或insert_many方法将数据插入到MongoDB使用find方法查询数据,使用update_one或update_many方法更新数据,使用delete_one或delete_many方法删除数据等。 在使用Redis和MongoDB的组合方式,可以将经常被访问的数据缓存Redis,从而提高访问速度。当需要获取数据时,首先尝试从Redis获取,如果不存在则从MongoDB获取,并将获取的数据缓存Redis。同时,还可以通过设置合适的过期时间,以保证缓存的数据不会过时。 需要注意的是,在将数据缓存Redis时,应该根据实际需求选择适当的数据结构(如字符串、哈希、列表、有序集合等),以满足不同的缓存需求。在使用MongoDB作为主数据库时,需要根据实际情况设计合理的数据模型和索引,以支持高效的数据存储和查询操作。 总之,通过使用Python操作redis和mongodb,结合redis作为缓存,mongodb作为主数据库,可以提高数据的读写效率和性能,并实现灵活可扩展的数据存储方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值