在Centos安裝Redis筆記
一、centos安裝redis
1、確保系統安裝了gcc(c語言的編譯器)和tcl(redis的一些元件是使用tcl語言編寫的)
使用yum安裝:yum install gcc gcc-c++
2、命令安裝redis:
wget http://download.redis.io/releases/redis-2.8.13.tar.gz
tar -zxvf redis-2.8.13.tar.gz
cd redis-2.8.13
make
ll src/redis* (在src目錄中檢視生成的二進位制檔案,有redis-cli和redis-server)
sudo make install (把生成的二進位制檔案放進 /usr/local/bin 目錄下)
ll /usr/local/bin
which redis-server (看到redis-server檔案放進了 /usr/local/bin 目錄下)
redis-server --help (檢視redis-server的所有命令)
mkdir /home/redis (建立redis啟動檔案的存放目錄)
cp redis.conf /home/redis/redis.conf (把redis.conf原始啟動檔案複製到 自定義的資料夾)
whereis redis-cli
vim /home/redis/redis.conf (修改配置檔案)
找到 daemonize no 把 no 改成 yes(設定redis守護程序的方式啟動,即後臺啟動)
找到 port 改成自定義埠(例如: port 7200)
儲存退出。
3、啟動redis-server服務:
sudo /usr/local/bin/redis-server /home/redis/redis.conf
ps aux | grep redis-server (檢視程序檢查是否啟動)
4、使用客戶端操作redis
redis-cli --help(檢視操作命令)
redis-cli -h 127.0.0.1 -p 7200 (127.0.0.1代表服務端ip,7200為埠)
進入客戶端後 ,info命令檢視redis資訊,版本等
二、php安裝redis擴充套件
1、用命令php -m 檢視php安裝了那些擴充套件,沒有找到redis,則繼續。。。
2、檢查是否安裝了phpize(編譯configure必須的)和php-config(編譯用到的) 。
用 which phpize 和 which php-config 命令檢查,
未安裝則 用yum install php-devel命令安裝(包含了phpize和php-config的安裝)。、
3、下載php安裝擴充套件
命令:wget https://github.com/phpredis/phpredis/archive/develop.zip
unzip develop.zip
(ls看到生成了phpredis-develop資料夾)
cd phpredis-develop 進入資料夾
phpize
./configure --with-php-config=/usr/bin/php-config
make && make install(出現:Installing shared extensions: /usr/lib64/php/modules 表示成功!)
4、命令php --ini,檢視ini檔案的路徑,進入檔案php.ini ,在最後一行加上 extension=redis.so
5、命令php -m 檢視是否有redis
如上圖所示,加了-a引數之後即可正常連線並操作redis。
三、Redis 設定持久化
vim /home/redis/redis.conf (修改啟動配置檔案 redis.conf)
1、指定儲存至本地資料庫時是否壓縮資料,預設為yes,Redis採用LZF壓縮,如果為了節省CPU時間,可以關閉該選項,但會導致資料庫檔案變的巨大
rdbcompression yes
2、指定本地資料庫檔名,預設值為dump.rdb
dbfilename dump.rdb
3、指定本地資料庫存放目錄dir ./
4、指定是否在每次更新操作後進行日誌記錄,Redis在預設情況下是非同步的把資料寫入磁碟,如果不開啟,可能會在斷電時導致一段時間內的資料丟失。因為 redis本身同步資料檔案是按上面save條件來同步的,所以有的資料會在一段時間內只存在於記憶體中。預設為noappendonly yes
5. 指定更新日誌檔名,預設為appendonly.aof
appendfilename appendonly.aof
6. 指定更新日誌條件,共有3個可選值:
no:表示等作業系統進行資料快取同步到磁碟(快)
always:表示每次更新操作後手動呼叫fsync()將資料寫到磁碟(慢,安全)
everysec:表示每秒同步一次(折衷,預設值)
appendfsync everysec