LNMP下Redis介紹以及安裝(Linux)
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版本,但是寶塔軟件上傳給出的卻是6.2.5,所以沒得選擇只能安裝,這個安裝都是在寶塔,不做演示了,直接安裝服務端,然后在站點使用的php版本中添加redis擴展即可。還需要在左側安全菜單添加redis默認端口:6379,如果涉及服務器安全組的話也需要開放對應接口權限。
安裝部署完成了,但是就是無法連接,查了百度,有的說需要關閉8080端口Tomcat服務器才行,然后查看服務器根本沒有Tomcat服務器也沒占用8080端口,還有的說把默認端口號更改,測試依然無效,還有的說是由于Mysql配置了不支持遠程連接引起的,安裝教程將Host設置了“%”后還是無法訪問,感覺最靠譜的教程是將“bind 127.0.0.1”注釋掉,為什么說最靠譜一會說,至少按照如上教程我是沒有解決。
查了很多資料大概是因為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,更加安全的方法有待探究。


浙公網安備 33010602011771號