二十一、PHP 和 Redis
master ,这是我的小站,欢迎访问哦~~
PHP 可以通过 phpredis 扩展访问 Redis
安装 phpredis 扩展
PHP 语言访问 Redis 需要先安装 Redis 服务和 PHP Redis 扩展。
phpredis 扩展官方地址为 https://github.com/phpredis/phpredis
phpredis 扩展下载地址为: https://github.com/phpredis/phpredis/releases
当前最新的扩展版本为: 3.1.4
1. 使用下面的一些列命令安装这个 phpredis 扩展
1 2 3 4 5 6
| $ wget https://github.com/phpredis/phpredis/archive/3.1.4.tar.gz $ tar zxvf 3.1.4.tar.gz $ cd phpredis-3.1.4 $ /usr/local/php/bin/phpize $ ./configure --with-php-config=/usr/local/php/bin/php-config $ make && sudo make install
|
如果是 PHP 7 及以上版本,则需要下载指定分支:
1
| git clone -b php7 https://github.com/phpredis/phpredis.git
|
2. 修改 php.ini 文件
修改 php.ini 文件添加 redis 扩展
1
| vi /usr/local/php/lib/php.ini
|
增加如下内容:
1 2
| extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20090626" extension = redis.so
|
3. 重启 WEB 服务器
安装完成后重启 php-fpm 或 apache,查看 phpinfo 信息,就能看到 redis 扩展
或者输入以下命令来检查
1 2 3 4
| $ php -i | grep redis /usr/local/etc/php/5.6/conf.d/ext-redis.ini, redis Registered save handlers => files user memcache memcached redis rediscluster
|
PHP 连接到 Redis 服务
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <?php
$redis = new Redis(); $redis->connect('127.0.0.1', 6379); echo "Connection to server sucessfully\n";
echo "Server is running: " . $redis->ping(); echo "\n";
|
运行以上 PHP 脚本,输出结果如下
1 2 3
| $ php main.php Connection to server sucessfully Server is running: +PONG
|
PHP 存储/获取 Redis 字符串( String )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <?php
$redis = new Redis(); $redis->connect('127.0.0.1', 6379); echo "Connection to server sucessfully\n";
$redis->set("site", "tech.souyunku.com");
echo "Stored string in redis:: " . $redis->get("site"); echo "\n";
|
运行以上 PHP 脚本,输出结果如下
1 2 3
| $ php main.php Connection to server sucessfully Stored string in redis:: tech.souyunku.com
|
PHP 访问 Redis 列表( List )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379); $redis->flushall(); echo "Connection to server sucessfully\n";
$redis->lpush("language", "Python2"); $redis->lpush("language", "C++"); $redis->lpush("language", "Perl");
$arList = $redis->lrange("language", 0 ,5); echo "Stored string in Redis\n";
print_r($arList);
|
运行以上 PHP 脚本,输出结果如下
1 2 3 4 5 6 7 8 9
| $ php main.php Connection to server sucessfully Stored string in Redis Array ( [0] => Perl [1] => C++ [2] => Python2 )
|
PHP 访问 Redis 键( Keys )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379); echo "Connection to server sucessfully\n";
$arList = $redis->keys("*"); echo "Stored keys in redis:: "; print_r($arList);
|
运行以上 PHP 脚本,输出结果如下
1 2 3 4 5 6
| $ php main.php Connection to server sucessfully Stored keys in redis:: Array ( [0] => language )
|