方法
第一步、打开网站目录到/wp-content/plugins/redis-cache/includes打开文件夹下的object-cache.php文件
第二步、搜索database
第三步、更改database后面的值,redis库的值从0开始 0 1 2 3 4 5 6..... 默认好像有16个,第一个站点我设置了0库,第二个我设置1库。
第四步、保存文件,然后重新启用oRedis Object Cache 就可以共存了。
前言
今天把其他服务器里的站点迁移到同一台服务器,这些站点大多都是wordpress,都使用了redis缓存数据库,今天迁移过来的时候,第一个开启redis的站点没有问题,第二个开启redis的站点会直接和第一个冲突,第二个站点显示的内容会跳转到第一个站点上。
尝试过程
一开始在hostloc里问了各位大佬,发现各位大佬的方法都没办法用,然后自己研究。有大佬推荐de fine( 'WP_REDIS_DATABASE', 1 );指定redis数据库分开,大佬的方法肯定是对的,但是不知道是不是redis版本问题,在这个版本上无**常使用,还有一种方法是*/def/ine(‘WP_CACH/E_KEY_SALT’, ‘站点域名’);通过设置键值来分别存储redis数据,这两种方法我都试过了,也保存并且重启了,都没有起到效果,还是依旧会串数据,另外我还看到了一种多端口redis实例共存的方案,觉得太麻烦就没有选择研究。
研究过程
思来想去,我想到redis启动的时候会默认有十几个库给我们使用,最简单的方法就是给每个wordpress运行redis的时候选择不同的库,但是大佬推荐的方法没有办法用,所以我打开了redis的设置页面,看看能不能研究到什么东西,我发现有个database :0,这个应该是这个站点运行redis的时候选择了redis 0库。
找到这个了后,我想尝试直接从Redis Object Cache插件文件入手,看看能不能直接从文件上通过修改数值让wordpress的redis启动时通过数值选择redis数据存放库。然后我打开了位于wp-content/object-cache.php下的文件,发现了database值,通过修改这边的值,确实可以选择当前站点运行的redis数据存放库,但是修改这里,下次重新启动的时候还是会重新恢复成0。
然后我搜了一下,发现在/wp-content/plugins/redis-cache/includes也有个object-cache.php
两个文件一模一样,我通过更改这边文件的 database值,前面的站点我用了0.这个我改成1,然后两个站点就顺利共存了。
原理
通过修改Redis Object Cache插件的运行文件数据来手动选择当前站点redis运行时存储的数据库。
这篇文章放在我博客了https://www.venkio.com/55.html 有兴趣的可以去看看,以后会分享转载一些技术类的东西。
热议
2楼 GAted0 3小时前
你之前改完后,清理过缓存吗
3楼 Venkio 3小时前
你之前改完后,清理过缓存吗
清理过呢
4楼 GAted0 3小时前
清理过呢
那不清楚了,我之前就是按照你前面的操作,没问题
5楼 Venkio 3小时前
那不清楚了,我之前就是按照你前面的操作,没问题
嗯嗯 我觉得应该是我自己哪里没有操作好 用那个方法的时候没生效
6楼 乌拉擦 3小时前
感谢分享
7楼 vagaa 3小时前
你网站有点慢
8楼 Venkio 2小时前
你网站有点慢
嗯嗯 没怎么优化
9楼 Venkio 2小时前
感谢分享
谢谢 不用谢
10楼 解憂雜貨店 2小时前
不用那么麻烦去修改源码:https://github.com/rhubarbgroup/redis-cache/wiki/Connection-Parameters
自己在`wp-config.php`定义一下相关常量就好了
12楼 主机资讯 1小时前
直接设置键值前缀就行了,别分库了,集群模式的话就一个库,前缀不折腾
13楼 Venkio 1小时前
直接设置键值前缀就行了,别分库了,集群模式的话就一个库,前缀不折腾
嗯嗯 我键 设置错误了 下午没弄出来 谢谢分享
14楼 dvbhack 1小时前
集群版redis没有多个数据库。多数据库只是单机版的特性。
正确做法是配置 WP_REDIS_PREFIX 常量。不同站点用不同前缀区分。
15楼 Venkio 1小时前
集群版redis没有多个数据库。多数据库只是单机版的特性。
正确做法是配置 WP_REDIS_PREFIX 常量。不同站点 ...
感谢科普
申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。