参考文章:http://www.jianshu.com/p/6b5eca8d908b
安装
下载安装包 redis-*.*.*.tar.gz
官网地址:http://redis.io/download
(1.) 服务器上安装了redis
解压:tar -zvxf redis-*.*.*.tar.gz 将解压后的文件夹放到 /usr/local目录下
编译测试:
接下来在终端中切换到/usr/local/redis-3.2.8目录下,输入:sudo make test
详情如下....
$ wget http://download.redis.io/releases/redis-3.2.8.tar.gz $ tar xzf redis-3.2.8.tar.gz $ cd redis-3.2.8 $ make
The binaries that are now compiled are available in the src
directory. Run Redis with:
$ src/redis-server
这句是 启动服务,启动后,会出现一个 图形。
这里不要关闭。
11480:C 16 May 11:18:03.282 # Warning: no config file specified, using the default config. In order to specify a config file use src/redis-server /path/to/redis.conf 11480:M 16 May 11:18:03.284 * Increased maximum number of open files to 10032 (it was originally set to 256). _._ _.-``__ ''-._ _.-`` `. `_. ''-._ Redis 3.2.8 (2b9a2833/1) 64 bit .-`` .-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) Running in standalone mode |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 | `-._ `._ / _.-' | PID: 11480 `-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | http://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-._ _.-' `-.__.-' 11480:M 16 May 11:18:03.290 # Server started, Redis version 3.2.8 11480:M 16 May 11:18:03.291 * DB loaded from disk: 0.001 seconds 11480:M 16 May 11:18:03.291 * The server is now ready to accept connections on port 6379
然后,另起一个终端。
You can interact with Redis using the built-in client:
$ src/redis-cli redis> set foo bar OK redis> get foo "bar"
上面验证,服务器上 已经开启redis服务了,可以使用。
(2.) php 里 安装 redis 扩展。
有没有安装redis扩展:可先在自己的demo中查看phpinfo.php
二,实例
下面举例在thinkphp3.2.3,thinkphp5项目中,如何使用redis,
1.看网上教程,关于thinkphp3.2.3的,或者略过。
http://www.thinkphp.cn/code/1458.html
下载redis.rar,查看说明。
他里面写的:
这个是对windows的,我没有测试过,也是为了保证php的redis扩展安装好。
(1).cd /usr/local/php5
(2).sudo cp -r ~/Downloads/redis/redis扩展文件/ ./
(3)找到 /private/etc/php.ini
Php.ini加下面两行:
extension=php_igbinary.dll
extension=php_redis.dll
注:php_redis.dll需放在php_igbinary.dll之后
2.如果按照各种方法,把php的redis扩展安装好了。
写一个phpinfo.php。查看一下。
http://demo.ccc/default/phpinfo.php
里面有redis.就OK
3.在thinkphp3.2项目的config.conf,添加
'DATA_CACHE_PREFIX' => 'Redis_',//缓存前缀'DATA_CACHE_TYPE'=>'Redis',//默认动态缓存为 Redis'REDIS_RW_SEPARATE' => true, //Redis读写分离 true 开启 'REDIS_HOST'=>'127.0.0.1', //redis服务器ip,多台用逗号隔开; 读写分离开启时,第一台负责写,其它[随机]负责读; 'REDIS_PORT'=>'6379',//端口号'REDIS_TIMEOUT'=>'300', //超时时间'REDIS_PERSISTENT'=>false,//是否长连接 false=短连接 'REDIS_AUTH'=>'',//AUTH认证密码
4.thinkphp3.2的项目中,使用时,这样写
/** * 测试redis * author: * http://wp.ccc/index.php/Home/Hq/redis_demo */ public function redis_demo(){ $redis = new \Redis(); $redis->connect('127.0.0.1',6379); $redis->set('test','hello world'); echo $redis->get("test"); }
5.如果是thinkphp5项目。
config.php 这样写
'cache' => [ // 使用复合缓存类型 'type' => 'complex', // 默认使用的缓存 'default' => [ // 驱动方式 'type' => 'File', // 缓存保存目录 'path' => CACHE_PATH, // 缓存有效期 0表示永久缓存 'expire' => 0, ], // 文件缓存 'file' => [ // 驱动方式 'type' => 'file', // 设置不同的缓存保存目录 'path' => RUNTIME_PATH . 'file/', ], //redis缓存 'redis' => [ // 驱动方式 'type' => 'redis', // 服务器地址 'host' => '127.0.0.1', ],],
6.thinkphp5中,使用时,这样写:
use think\Cache;// 更新属性数据 public function updatecache(){ // 查找 $list = Db('Cascadedata')->select(); // var_dump($list); Cache::store('redis')->set('cascadedata',$list); $cascadedata = Cache::get('cascadedata'); var_dump($cascadedata); }
三。可能出现的问题,
1.扩展没有安装好
mac 中安装redis 以及 安装php-redis扩展过程详细记录
http://www.cnblogs.com/neverleave/p/6309063.html
2.
==
关于php重启的:
php-fpm重启
killall php-fpm
再执行(usr/local/php是php的安装目录)
/usr/local/php/sbin/php-fpm &
3.
==
如果出现:
:(
Redis server went away
是不是防火墙被关闭了。
查看,系统偏好设置。
===
再总结,使用的时候
打开redis服务
macdeMacBook-Pro:redis-3.2.8 mac$ src/redis-server再开一个终端:
我以为设置了 auth,所以输了auth ****, 这一行可以略去。
macdeMacBook-Pro:~ mac$ cd /usr/local/redis-3.2.8 macdeMacBook-Pro:redis-3.2.8 mac$ src/redis-cli 127.0.0.1:6379> auth ***** (error) ERR Client sent AUTH, but no password is set 127.0.0.1:6379>测试一下。
set foo bar get fooOK。
===
正式站线上,服务器oneinstack安装的环境:
linux下,查看服务器上redis有没有启动。
service redis-server status
redis-server (pid 2918) is running...
看端口有没有打开。
netstat an|grep 6379
0 127.0.0.1:6379 0.0.0.0:* LISTEN
准备好之后,
在项目里某个控制器里,写一个方法,测试一下。
/** * 测试redis * author: * http://wp.ccc/index.php/Home/Hq/redis_demo */ public function redis_demo(){ $redis = new \Redis(); $redis->connect('127.0.0.1',6379); $redis->set('test','hello world'); echo $redis->get("test"); }
ok!
关于这个知识点,如果你不会安装,或测试redis还没做出来,
欢迎到php技术问答群QQ群:292626152来提问。
==
另外打开端口的知识点:
一、查看哪些端口被打开 netstat -anp 二、关闭端口号:iptables -A INPUT -p tcp --drop 端口号-j DROP iptables -A OUTPUT -p tcp --dport 端口号-j DROP 三、打开端口号:iptables -A INPUT -ptcp --dport 端口号-j ACCEPT 四、以下是linux打开端口命令的使用方法。 nc -lp 23 &(打开23端口,即telnet) netstat -an | grep 23 (查看是否打开23端口) 五、linux打开端口命令每一个打开的端口,都需要有相应的监听程序才可以