宝塔面板 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%;" />