redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。在此基础上,redis支持各种不同方式的排序。Redis数据都是缓存在计算机内存中,并且会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
redis官网地址:http://www.redis.io/
最新版本:2.8.3
在Linux下安装Redis非常简单,具体步骤如下(官网有说明):
1、下载源码,解压缩后编译源码。
$ wget http://download.redis.io/releases/redis-2.8.3.tar.gz $ tar -xzf redis-2.8.3.tar.gz $ cd redis-2.8.3 $ make
2、编译完成后,在src目录下,有四个可执行文件redis-server、redis-benchmark、redis-cli和redis.conf。然后拷贝到一个目录下。(注意:redis.conf并不在src目录下面,它在解压的根目录下面)
mkdir /usr/redis cp redis-server /usr/redis cp redis-benchmark /usr/redis cp redis-cli /usr/redis
cd .. cp redis.conf /usr/redis cd /usr/redis
3、启动Redis服务。
$ /usr/redis/redis-server /usr/redis/redis.conf
当启动后可能会停止不了;一直处于启动的界面,
如果停止不了则关掉,重新链接;然后在/usr/redis下修改redis.conf 找到daemonize no 改为yes;保存;重新启动即可
4、然后用客户端测试一下是否启动成功。
$ /usr/redis/redis-cli redis> set foo bar OK redis> get foo "bar"
也有如下图显示方式:
数据输出,表示成功
安装redis后;还需要安装php redis拓展才能使用;
1、下载
下载地址:
https://github.com/phpredis/phpredis/
文件名:phpredis-2.2.4.tar.gz
也可以是其它版本;比如phpredis-2.8.3 安装都类似
文件下载成功后,上传至/usr/local
2、安装
[root@vm15 local]# tar -zxvf phpredis-2.2.4.tar.gz #解压
[root@vm15 local]# cd phpredis-2.2.4 #进入安装目录
[root@vm15 phpredis-2.2.4]# /usr/local/php/bin/phpize #用phpize生成configure配置文件;如果没有phpize则安装
phpize是属于php-devel的内容,因此在centos中只要运行如下命令:
yum install php-devel
然后就会安装上phpize了
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226
[root@vm15 phpredis-2.2.4]#./configure --with-php-config=/usr/local/php/bin/php-config #配置;这个配置目录是和php有关的bin目录下的php-confg,看你自己的php环境
[root@vm15 phpredis-2.2.4]# make #编译
[root@vm15 phpredis-2.2.4]# make install #安装
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20131226
[root@vm15 phpredis-2.2.4]#
ll /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
total 1696
-rwxr-xr-x. 1 root root 540834 Dec 19 15:38 opcache.so
-rwxr-xr-x. 1 root root 861055 Dec 30 16:47 redis.so
安装完成之后,出现上面的安装路径,目录中的redis.so.
3、配置支持php
[root@vm15 phpredis-2.2.4]#vim /usr/local/php/etc/php.ini #编辑配置文件;看自己的php.ini目录
在最后一行添加以下内容
extension=redis.so
保存
:wq4、重启服务(重启apache或者nginx; 重启php-fpm服务)
[root@vm15 memcached-2.2.0]# service nginx restart
查看phpinfo可以看到支持了
php 执行redis的时候,应注意的问题:
1、关闭防火墙
2、关闭selinux
3、是否启用redis密码授权;查看配置文件requirepass是否启用并且设置密码;如不需要密码授权则注释;
3、配置支持php
[root@vm15 phpredis-2.2.4]# vi + /usr/local/php/lib/php.ini #编辑配置文件;看自己的php.ini目录
在最后一行添加以下内容
extension=redis.so
保存
:wq4、重启服务(重启apache或者nginx; 重启php-fpm服务)
[root@vm15 memcached-2.2.0]# service nginx restart
查看phpinfo可以看到支持了
php 执行redis的时候,应注意的问题:
1、关闭防火墙
2、关闭selinux
3、是否启用redis密码授权;查看配置文件requirepass是否启用并且设置密码;如不需要密码授权则注释;
连接Redis时提示“Connection refused:conn”的解决办法
这个折磨了我一下午的问题终于迎刃而解,之前并没有接触过Redis缓存数据库,仅仅知道这个是一个php扩展插件的一个功能,今天项目所需在宝塔服务器端安装了redis缓存数据库,但是安装完成之后连接时提示“java.net.ConnectException: Connection refused:conn”错误,翻译成中文就是“连接被拒绝”因为是第一次安装和部署,不知道问题出现在哪,先说下什么是redis缓存数据库?
Redis(Remote Dictionary Server )
Redis即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。在宝塔安装部署中需要先安装Redis服务端然后再PHP扩展安装redis功能,另外宝塔官方声明部分Centos7系统仅支持安装5.x版本,但是宝塔
安装部署完成了,但是就是无法连接,查了
查了很多资料大概是因为redis默认bind 127.0.0.1,之所以说这是最靠谱的因为这是解决办法之一,当然单单注释bind还是不行,我们仍然会得到异常,解决的第二个方法就是把配置文件protected-mode关闭掉。
redis默认开启了protected-mode,保证只有主机才能访问到,所以正确解决jedis conneciton refused的解决方案如下:
1) 宝塔软件商城找到redis,点击设置,找到配置文件
3) 将配置文件中的bind 127.0.0.1注释掉,注意:至少有两处,仅仅注释顶部的bind是不行的。
4) 找到配置文件中protected-mode yes,默认protected mode yes,需要将其改为protected-mode no
5 )重新开启reids-server 或者重载也是可以的。
安装如上操作重新在客户端链接之后就可以了,但是在redis负载状态下会显示:“没有在redis配置中找到 [ bind ip ] 参数”,如图:
因为我们在配置文件中禁用了bind ip,所以会有这个提示,无法查看负载状态,但是测试链接没有问题,功能测试也没有问题,那就暂且不管啦,以后遇到其他问题在解决吧,但是将protected mode关闭掉明显不安全,意味着任何机器都能远程访问你的redis-server,更加安全的方法有待探究。