在PHP中使用redis

yipeiwu_com7年前PHP代码库

在Mac OS上安装redis
首先是安装,它会默认安装到/usr/local/bin下

复制代码 代码如下:

cd /tmp
wget http://redis.googlecode.com/files/redis-2.6.9.tar.gz
tar -zxf redis-2.6.9.tar.gz
cd redis-2.6.9
make
sudo make install

然后下载一些配置文件(主要就是把deamon打开之类的,没对比与默认配置的区别)
复制代码 代码如下:

wget https://github.com/ijonas/dotfiles/raw/master/etc/redis.conf
sudo mv redis.conf /etc/redis.conf
sudo /usr/local/bin/redis-server redis.conf
说到这里备注下,如果没有目录权限,是无法建立
/var/log/redis/redis.log
/var/lib/redis/

导致redis启动失败
ok,现在已经大功告成,你的redis已经成功运行起来了。
试试看吧!
复制代码 代码如下:

/opt/redis/redis-cli
#会看到提示 redis 127.0.0.1:6379>说明已经连接服务。
set anythink helloworld
get anythink
exit

good 看到了helloworld,说明一切正常。
如果我需要停止redis或者需要重新启动呢?
复制代码 代码如下:

cat /opt/redis/redis.pid
#cat后会得到一个pid,我的是44277
sudo kill 44277
# 启动方法和之前一样。

设置开机自启动、后台运行
然后以root身份做以下事情:
在/Library/LaunchDaemons下新建com.redis.plist,内容如下:

复制代码 代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>com.redis</string>
        <key>RunAtLoad</key>
        <true/>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/local/bin/redis-server</string>
                <string>/etc/redis.conf</string>
        </array>
</dict>
</plist>

之后运行
复制代码 代码如下:

sudo launchtcl load /Library/LaunchDaemons/com.redis.plist
sudo launchtcl start com.redis

检查一下情况:
复制代码 代码如下:

$ cat /var/run/redis.pid

如果出来pid的数字,说明就运行了~
安装php-redis扩展
如果你需要在PHP中使用redis,那么请继续往下看
复制代码 代码如下:

curl -O https://nodeload.github.com/nicolasff/phpredis/zip/master
tar -zxf master
cd phpredis-master/
phpize
./configure
make
sudo make install

# 这时候会提示一个路径
# /usr/lib/php/extensions/no-debug-non-zts-20090626/
# 表示已经将扩展放置在该位置
vim /etc/php.ini

#增加如下内容
extension=redis.so

#重启apache
sudo httpd -k restart

#查看扩展安装情况
php -m |grep redis
#出现 redis 表示安装成功。

如果执行phpize提示如下错误
Cannot find autoconf. Please check your autoconf installation
and the $PHP_AUTOCONF environment variable.
Then, rerun this script.

请分别下载M4,autoconf编译安装

复制代码 代码如下:

curl -O http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz

注意,以上使用的apache、php均为MacOS自带的,如果是自己安装的phpize请指定绝对路径。
图形管理工具
另:redis还有一个基于WEB的图形界面管理工具,叫phpRedisAdmin,如果刚开启服务会出现一些Undefined index,过一会就好了。如果想试试可以使用如下命令安装(git推荐使用SourceTree安装)该管理工具支持String、Hash、List、Set、Zset
复制代码 代码如下:

git clone https://github.com/ErikDubbelboer/phpRedisAdmin.git
cd phpRedisAdmin/
git clone https://github.com/nrk/predis.git

相关文章

详解EventDispatcher事件分发组件

详解EventDispatcher事件分发组件

引言 考虑这样一个问题,现在你想给为你的项目提供一个插件系统,插件可以添加一些方法,或者在某些方法执行之前或者之后做些事情,而不干扰其他插件。要实现这个系统,简单的单继承不是个好办法,即...

PHP扩展程序实现守护进程

一般Server程序都是运行在系统后台,这与普通的交互式命令行程序有很大的区别。glibc里有一个函数daemon。调用此函数,就可使当前进程脱离终端变成一个守护进程,具体内容参见man...

对php 判断http还是https,以及获得当前url的方法详解

如下所示: $http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SER...

PHP实现算式验证码和汉字验证码实例

在PHP网站开发中,验证码可以有效地保护我们的表单不被恶意提交,但是如果不使用算式验证码或者汉字验证码,仅仅使用简单的字母或者数字验证码,这样的验证码方案真的安全吗? 大家知道简单数字或...

php正则替换处理HTML页面的方法

本文实例讲述了php正则替换处理HTML页面的方法。分享给大家供大家参考。具体如下: <?php if(!defined('BASEPATH')) exit('No d...