php使用redis
Redis是一个开源的,可基于内存亦可持久化的日志型、Key-Value数据库。
1.安装redis
首先保证php环境已经安装好。(这里我就不多做操作了,redis可取官方下载。)
tar zxvf redis-2.6.9.tar.gz
cd redis-2.6.9
make && make PREFIX=/usr/local/redis install
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf &&/sbin/sysctl -p ###优化内核。
2.安装phpredis-master扩展
unzip phpredis-master.zip (软件包自己去下载)
进入软件包用phpize命令动态添加phpredis
cd phpredis-master
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
3.修改php.ini文件
增加如下内容:
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20090626"
extension=redis.so
重启nginx、php-fpm即可。
4.连接到redis服务。
vim php-redis.sh
<?php
//连接本地的 Redis 服务
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
//查看服务是否运行
echo "Server is running: " . $redis->ping();
?>
执行脚本输出结果如下:
Connection to server sucessfully
Server is running: PONG
5.配置redis服务
[ ! -d /etc/redis ] && mkdir /etc/redis ###创建主配置文件
cp /usr/local/redis/etc/redis.conf /etc/redis/6379.conf
修改redis主配置文件。
daemonize yes #默认为no,yes为后台运行守护模式,会写到一个pid文件里面
pidfile /var/run/redis_6379.pid
port 6379 #端口
logfile /var/log/redis_6379.log #日志文件路径
dbfilename dump.rdb #设置dump文件的名称
dir /var/lib/redis/6379 #设置dump文件的路径
slave-serve-stale-data yes #是否设置主从复制
slave-read-only yes
slave-priority 100 #主从复制优先级
要注意dir 路径下面存放的是redis的数据文件。有就不用管,没有则创建文件夹,不然服务都起不来。
[ ! -d /var/lib/redis/6379 ] && mkdir /var/lib/redis/6379
6.制作redis启动脚本
vim /etc/init.d/redis
#/bin/sh
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli
PIDFILE=/var/run/redis_6379.pid
CONF="/etc/redis/6379.conf"
REDISPORT="6379"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
开启之后./redis-cli -p 6379 由用户名密码加-u
输入info就可以看到redis的服务信息了