Redis介绍
Redis (REmote DIctionary Server) 是一个开源的、高性能的键值(key-value)存储系统。它最初由Salvatore Sanfilippo开发,并在2009年发布。Redis提供了数据结构服务器的功能,可以用来存储各种类型的数据结构,如字符串(strings)、散列(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets),以及更复杂的数据结构如位图(bitmaps)、超日志(hyperloglogs)和地理空间索引(geospatial indexes)等。
Redis特点
Redis之所以能够提供极快的性能,主要是因为它采用了多种技术和设计原则。以下是一些关键因素:文章源自玩技e族-https://www.playezu.com/843945.html
- 内存存储:
- Redis将所有数据存储在内存中,这意味着读写操作可以直接在RAM中进行,而不需要访问磁盘。内存访问速度远远高于磁盘访问速度,这是Redis高速响应的基础。
- 单线程模型:
- Redis使用单线程模型处理客户端请求。这意味着在一个给定的时间点,只有一个客户端请求正在被处理。这简化了并发控制,因为不需要复杂的锁机制来保证数据一致性。
- 单线程模型还可以避免多线程环境中的上下文切换和锁的竞争开销。
- 高效的内存管理:
- Redis使用专门的内存分配器(如jemalloc)来有效地管理内存,减少内存碎片并提高内存使用效率。
- 事件驱动架构:
- Redis使用事件驱动模型来处理I/O操作。它通过一个事件循环监听多个套接字,当有客户端请求到达时,事件循环将这些请求加入队列并依次处理。
- 非阻塞I/O:
- Redis利用非阻塞I/O多路复用技术(如epoll或kqueue)来同时监听多个客户端连接。这样可以在等待I/O操作的同时继续处理其他任务。
- 优化的数据结构:
- Redis内置了多种高效的数据结构,这些数据结构在内存中进行了优化,以支持快速的数据访问和修改操作。
- 比如,使用跳跃表(skip lists)来实现有序集合,使用压缩列表(ziplist)来节省空间等。
- 命令的原子性:
- Redis中的大多数命令都是原子性的,这意味着它们在执行过程中不会被打断。这减少了并发控制的复杂性,并有助于保持高性能。
- 异步持久化:
- Redis支持异步持久化机制,如RDB快照和AOF日志,这些操作不会阻塞主线程,从而不会影响性能。
根据一些资料,Redis可以达到每秒处理几万到几十万次读写操作的能力,具体取决于硬件配置和工作负载。文章源自玩技e族-https://www.playezu.com/843945.html
需要注意的是,虽然Redis非常快,但它也有一些局限性,比如内存容量限制。因此,在部署和使用Redis时需要考虑这些因素。文章源自玩技e族-https://www.playezu.com/843945.html
使用场景
- 高流量网站:
- 对于访问量较大的网站,使用 Redis 可以显著减轻数据库的压力,并提高页面加载速度。这是因为 Redis 作为内存中的数据存储,可以非常快地处理请求,减少对较慢的磁盘 I/O 的依赖。
- 动态内容:
- 如果你的网站包含大量动态内容,每次请求都需要从数据库中获取数据,那么使用 Redis 进行对象缓存可以大幅减少数据库查询次数,提高网站性能。
- 多服务器环境:
- 在使用负载均衡或多服务器架构的情况下,Redis 可以作为一个统一的缓存层,确保所有服务器都能访问相同的缓存数据,这对于会话管理尤其有用。
- 频繁更新的内容:
- 如果你的网站经常更新内容,例如新闻站点或社交平台,Redis 可以帮助缓存这些频繁变化的数据,减少数据库负担。
- 需要高级缓存策略的应用:
- Redis 支持多种数据结构,如列表、集合、有序集合等,可以实现更复杂的缓存策略和数据处理逻辑。
- 资源受限的服务器:
- 如果你的服务器资源有限,使用 Redis 可以更高效地利用内存资源,因为它是基于内存的存储,可以快速响应请求。
- 需要快速响应的应用:
- 对于那些需要快速响应时间的应用,Redis 可以显著提高首屏加载速度,改善用户体验。
插件简介
Redis Cache Pro是一款企业级的Redis对象缓存优化WordPress插件,Object Cache Pro已针对WooCommerce进行了广泛的测试和优化,与WordPress本身紧密集成,并且仪表板小部件使交互变得容易。文章源自玩技e族-https://www.playezu.com/843945.html
官方网站
官网:https://objectcache.pro/文章源自玩技e族-https://www.playezu.com/843945.html
官方说明文档:https://objectcache.pro/docs文章源自玩技e族-https://www.playezu.com/843945.html
官方更新日志:https://objectcache.pro/docs/changelog文章源自玩技e族-https://www.playezu.com/843945.html
插件功能
- 针对原始性能进行了重写
- 符合文件缓存 API 标准
- 轻松调试和日志记录
- 缓存预取和分析
- 完全单元测试(100% 代码覆盖率)
- 使用 TLS 实现安全连接
- 通过文字新闻和WP命令行进行健康检查
- 针对 WooCommerce、 喷气背包和约斯特 SEO 进行了优化
插件对比
文章源自玩技e族-https://www.playezu.com/843945.html
插件配置
目前大多数用户都是用的是官方推荐的基础配置,并没有使用高性能配置(官方的说法是在毫秒内优化高流量站点
),今天研究了一下该插件如何使用高性能配置,下面上教程!文章源自玩技e族-https://www.playezu.com/843945.html
下载插件
基础配置
官方介绍:https://objectcache.pro/docs/configuration#high-performance
启动文件:Object Cache Pro 的配置是使用文件WP_REDIS_CONFIG
中的 PHP 常量完成的wp-config.php
。
高级配置
官方介绍:https://objectcache.pro/docs/configuration#high-performance
启动文件:Object Cache Pro 的配置是使用文件WP_REDIS_CONFIG
中的 PHP 常量完成的wp-config.php
。
两者区别
当对高流量站点进行毫秒级优化时,高级配置采用驱逐策略配置并设置。
驱逐策略
为了避免 Redis 内存耗尽以及您的网站瘫痪,建议将 Redis 的maxmemory-policy
配置选项设置为allkeys-lru
或allkeys-lfu
。如不会设置请参考下面文章:
宝塔安装
环境:Centos7 面板:9.1.0 php:7.4
要求:新宝塔面板没安装过的直接使用编辑安装php7.4,安装过php环境的需要卸载重新安装,redis安装过的需要卸载重新编译安装redis。
特殊:有些特殊环境无法安装redis对应的扩展可以参考下方文档,在执行下方安装步骤前操作。
视图解读
Requests (请求)
- Cached Hits: 显示已经被 Redis 缓存并直接从缓存中返回的请求数量。
- Uncached Hits: 显示由于某些原因未能从缓存中返回而必须从数据源获取的请求数量。
- Misses: 显示因缓存中不存在而未能直接返回的请求数量。
- Hits-to-Misses Ratio: 显示缓存命中数与未命中数的比例。这个比率越高,说明缓存的效果越好。
Redis:Requests (Redis 请求)
- Successful Key Lookups: 显示成功从 Redis 中查找键的次数。
- Failed Key Lookups: 显示尝试查找但未能找到对应键的次数。
- Hits-to-Misses Ratio: 显示 Redis 键查找中的命中与未命中的比率。高比率通常表明 Redis 缓存效果良好。
Commands (命令)
- Cache Reads: 显示从 Redis 缓存读取数据的次数。
- Datastore Writes: 显示写入数据存储(通常是数据库)的次数。这通常发生在缓存过期或数据更新时。
- Datastore Reads: 显示从数据存储读取数据的次数。
- Cache Writes: 显示写入 Redis 缓存的次数。
Response Times (响应时间)
- WordPress Render Time: 显示 WordPress 渲染页面所需的平均时间(毫秒)。
- Datastore Response Time: 显示等待数据存储响应的平均时间(毫秒)。
Redis:Memory (Redis 内存)
- Memory Allocated: 显示 Redis 当前分配的内存量。
- Used Memory: 显示 Redis 已使用的内存量。
- Memory Ratio: 显示 Redis 分配的内存与其最大可分配内存之间的比率。这有助于监控 Redis 的内存使用情况。
Datastore Command Time (数据存储命令时间)
- Average Time Waiting for Datastore Response: 显示等待数据存储响应的平均时间(毫秒)。这有助于评估数据存储的性能。
Redis:Throughput (Redis 吞吐量)
- Commands Processed per Second: 显示每秒钟 Redis 处理的命令数量。高吞吐量通常表明 Redis 服务器正在高效地处理请求。
常见问题
Q:提示将配置文件放置wp-config.php的最顶端
A:将配置文件防止在所有配置的最前面,效果如下
Q:提示Failed to initialize objectcache: PhpRedis was not compiledwith Zstandard compression support,see For more informationabout enabling compressions see:https://objectcache.pro/docs/data-encoding
A:php的zstd和igbinary没有安装,按照步骤三重新安装即可。
Q:激活秘钥有哪些?
A:
Zhanzhangb9sjJlBxBpLJbJcIRoi9rfszjmOqecMzQ1RB3K8jYQAOMkrCFDR RAK3EiGNFop#gJq7tU55M%cb#%ZUy8Q#TyT$oXA&H9joowem7TbzdYQSewgy QAK3EiGNFop#gJq7tU55M%cb#%KQy8Q#TyT$oXA&H9joowem7TbzdYQSewgy
原创声明:本文章为原创内容,所有文章均由博主亲自撰写,严格遵循原创原则。我们承诺不使用任何人工智能生成的内容,所发布的每一篇文章都经过深思熟虑,旨在为读者提供真实、有价值的观点和信息。我们坚信原创才是知识分享的根本,致力于为广大读者呈现最具真实性和独特性的文章。感谢您的支持与关注,欢迎持续关注我们的原创内容。
北京市 1F
感谢大佬