homestead使用redis-bloom及其在Laravel中的使用

PHP安装PHPRedis扩展

下载PHPRedis源码

下载地址:git clone https://github.com/phpredis/phpredis.git

安装PHPRedis扩展

cd phpredis/
sudo phpize7.2
sudo ./configure --with-php-config=/usr/bin/php-config7.2
sudo make
sudo make install

注意: phpize和php-config必须保持一致,且和你当前项目所用的PHP版本保持一致,如果你的phpize和php-config和当前项目不匹配,phpinfo()中不会有Redis的扩展;

注意: 如果你的homestead中运行的PHP版本和phpize,php-config的版本不一致,则需要下载你homestead中运行的PHP版本的phpize,php-config(我就在这里徘徊了许久),可以通过下面的命令进行安装(我的PHP7.2版本)

sudo apt-get install php7.2-dev

查看扩展目录

php -i|grep extension_dir
extension_dir => /usr/lib/php/20170718 => /usr/lib/php/20170718
sqlite3.extension_dir => no value => no value

把redis.so扩展模块移动到扩展目录中

sudo mv modules/redis.so /usr/lib/php/20170718/

添加 PHP 配置文件的 ini 文件

cd /etc/php/7.2/fpm/conf.d/
vim 20-redis.ini
内容如下:extension=redis.so

重启php-fpm

sudo systemctl restart php7.2-fpm.service

查看phpredis是否安装成功

phpinfo();

homestead使用redis-bloom及其在Laravel中的使用

cli模式下用phpredis

cd /etc/php/7.2/cli/conf.d/
vim 20-redis.ini
内容如下:extension=redis.so

cli模式下查看phpredis是否安装成功

php -m|grep redis
redis
如果输出redis则是安装成功

Redis安装支持redisbloom模块

下载redisbloom源码

git clone https://github.com/RedisBloom/RedisBloom.git

编译安装

cd redisbloom
make
成功则会生成一个redisbloom.so文件

Redis添加redisbloom扩展

sudo vim /etc/redis/redis.conf
在redis.conf中添加下面一行(我的redisbloom.so放到了/etc/redis/extend/目录下,你可以自行放置)
loadmodule /etc/redis/extend/redisbloom.so

重启redis服务器

sudo systemctl restart redis

查看redisbloom是否加载成功

redis-cli
执行命令:bf.add newFilter foo
可以执行上面的命令就说明redisbloom安装成功了

Laravel使用redisbloom

redisbloom为PHP提供了两个三方库,可以让PHP使用redisbloom

phpredis-bloom

安装phpredis-bloom

composer require averias/phpredis-bloom

phpredis-bloom 文档地址

https://packagist.org/packages/averias/phpredis-bloom?query=phpredis-bloom

php-Rebloom

安装php-Rebloom

composer require palicao/php-rebloom
注意: php-Rebloom引用了phpredis-bloom,所有安装phpRebloom之前必须要先安装phpredis-bloom

php-Rebloom文档地址

https://packagist.org/packages/palicao/php-rebloom

两者的区别

  1. phpredis-bloom要求Redis不能设置密码,如果设置了密码,在初始化的时候会报错
  2. php-Rebloom则没有这个限制,可以为Redis设置密码;且对redisbloom的方法进行了比较好的封装,使用比较方便

阿里云优惠领取