静态网站什么意思找资源的关键词有哪些
news/
2025/9/26 19:23:21/
文章来源:
静态网站什么意思,找资源的关键词有哪些,丹东做网站,十大博客网站Redis 基本概述
Redis#xff08;Remote Dictionary Server#xff09;是一个开源的使用 ANSI C 语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库#xff0c;并提供多种语言的 API。它通常被称为数据结构服务器#xff0c;因为值#xff08;value…Redis 基本概述
RedisRemote Dictionary Server是一个开源的使用 ANSI C 语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库并提供多种语言的 API。它通常被称为数据结构服务器因为值value可以是字符串(string)、哈希(Hash)、列表(list)、集合(sets)、有序集合(sorted sets)等类型。
Redis 广泛应用于缓存、消息队列、计数器、排行榜、分布式锁等场景为开发者提供了强大的数据存储和处理功能。
Redis 主要特点和概述
内存存储与持久化Redis 主要将数据存储在内存中因此读取速度非常快。同时它也支持数据的持久化可以将内存中的数据定期写入磁盘或其他存储介质以防止数据丢失。
数据类型丰富Redis 支持多种数据类型如字符串、哈希、列表、集合和有序集合等这使得Redis能够灵活地应用于各种场景。
发布 / 订阅模型Redis 支持发布 / 订阅模型允许发送者pub发送消息订阅者sub接收消息。这种模型常用于实现实时消息系统、聊天室等。
事务支持Redis 支持简单的事务处理可以通过 MULTI、EXEC 和 DISCARD 等命令来执行一系列操作。
Lua 脚本Redis 支持使用 Lua 脚本进行复杂的操作提高了操作的灵活性和效率。
分布式与集群Redis 支持分布式部署和集群功能可以通过分片、复制等方式实现数据的水平扩展和高可用性。
高并发性能由于 Redis 主要操作都在内存中完成且采用单线程模型避免了多线程的上下文切换开销因此 Redis 具有非常高的并发性能。
Python 远程连接 Redis
下载第三方库redis py - redis 使用
pip3 install --pre redis -i https://pypi.tuna.tsinghua.edu.cn/simple 采用非连接池技术连接如下
import redis
host 服务器IP
port 6379
r redis.Redis(hosthost, portport)采用连接池技术连接如下
# 连接池为了节约资源减少多次连接带来的消耗。
# 默认设置的值和取得的值都是bytes类型如果想改为str类型可以添加decode_responsesTruepoolredis.ConnectionPool(host服务器IP, port6379, decode_responsesTrue)关系型数据库都有一个连接池的概念对于大量redis连接来说如果使用直接连接redis的方式的话将会造成大量的TCP的重复连接所以就引入连接池来解决这个问题。在使用连接池连接上redis之后可以从该连接池里面生成连接调用完成之后该链接将会返还给连接池供其他连接请求调用这样将减少大量redis连接的执行时间。 Redis 基本操作
常规属性查看 redis 库中的 Redis 类生成对应的对象都有如下同名的方法供调用者调用。 具体的操作请参考Redis 博客
配置服务器端开启远程
本地连接服务器端 Redis 数据库开放 6379 端口 宝塔面板 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 redishost 124.222.115.238
port 6379
r redis.Redis(hosthost, portport)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 redishost xxx.xxx.xxx.xxx
port 6379
r redis.Redis(hosthost, portport, passwordfoobared, decode_responsesTrue)r.set(name, 唤醒手腕)
print(r.get(name))Sort Set 读写操作
创建一个 Redis 连接
import redis host xxx.xxx.xxx.xxx
port 6379
r redis.Redis(hosthost, portport, passwordfoobared, decode_responsesTrue)添加一些成员到有序集合中并指定分数
r.zadd(leaderboard, {Alice: 1000, Bob: 1200, Charlie: 1100}) 获取有序集合的所有成员和分数
members_with_scores r.zrange(leaderboard, withscoresTrue)
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, withscoresTrue)
print(top_member) # 输出: [(Bob, 1200.0)] 获取有序集合中分数在指定范围内的成员
members_in_range r.zrangebyscore(leaderboard, 1000, 1100, withscoresTrue)
print(members_in_range) # 输出: [(Alice, 1000.0), (Charlie, 1100.0)] 更新有序集合中某个成员的分数
r.zincrby(leaderboard, 50, Alice) 再次获取有序集合的所有成员和分数 查看 Alice 的分数变化
updated_members_with_scores r.zrange(leaderboard, withscoresTrue)
print(updated_members_with_scores) # 输出可能包括 Alice 的新分数 删除有序集合中的某个成员 r.zrem(‘leaderboard’, ‘Alice’)
再次获取有序集合的所有成员和分数 查看 Alice 是否已被删除
final_members_with_scores r.zrange(leaderboard, withscoresTrue)
print(final_members_with_scores) # 输出将不再包含 Alice
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/918699.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!