[toc]
## 簡介
REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo(redis之父)寫的key-value存儲系統。
Redis提供了一些豐富的數據結構,包括 lists, sets, ordered sets 以及 hashes還有和Memcached一樣的strings結構.
Redis當然還包括了對這些數據結構的豐富操作。
總之它具有以下特點:
1. 數據結構豐富
2. 持久化
3. 支持簡單事務
4. 主從配置方便
## redis和memcached相比
1. redis可以用來做存儲(storge), 而memccached只能用來做緩存(cache),這個特點主要因為其有"持久化"的功能.
2. 存儲的數據有"結構",對于memcached來說,存儲的數據,只有1種類型--"字符串",而redis則可以存儲字符串,鏈表,哈希結構,集合,有序集合.
## 安裝
### Linux(centOS)下安裝redis
wget http://download.redis.io/releases/redis-3.0.7.tar.gz
tar zxvf redis-3.0.7.tar.gz
cd redis-3.0.7
# 源碼是官方configure過的,這個地方可以跳過configure,直接make,但是在make的時候有可能遇到時間錯誤,原因是源碼是在官方configure時,生成的文件有時間戳信息,Make只能發生在configure之后,如果虛擬機時間不對的話,就要重寫時間
# date -s 'yyyy-mm-dd hh:mm:ss'
# clock -w
make PREFIX=/usr/local/redis install # 注意PREFIX是大寫
# 可選步驟 make test 測試編譯情況
安裝完成之后得到以下幾個文件:
redis-benchmark 性能測試工具
redis-check-aof 日志文件檢測工具(比如斷電造成日志損壞,可以檢測并修復)
redis-check-dump 快照文件檢測工具,效果類上
redis-cli 客戶端
redis-server 服務端
### Linux(centOS)下php-redis擴展編譯
1. 到pecl.php.net 搜索redis
2. 下載stable版(穩定版)擴展
3. 解壓進入,執行/php/path/bin/phpize (作用是檢測PHP的內核版本,并為擴展生成相應的編譯配置)
4. `./configure --with-php-config=/usr/bin/php-config`
5. `make && make install`
6. 編譯完以后最后一行 `Installing shared extensions: /usr/lib/php/modules/`告之擴展在哪里;然后在php.ini中添加既可;
>[info] 也可以直接使用compose包`predis/predis`
### windows下安裝
redis不建議在windows上使用,如果因為開發等因素的確需要安裝的話,主要參考以下鏈接安裝即可
redis在windows下的安裝:
http://www.cnblogs.com/linjiqin/archive/2013/05/27/3101694.html
php-redis擴展的安裝:
http://blog.chinaunix.net/uid-11121450-id-3261252.html
redis的github
https://github.com/dmajkic/redis/downloads
php-redis.dll的github
https://github.com/nicolasff/phpredis/downloads
## 啟動
### 啟動服務
讓redis以后臺進程的形式運行,編輯conf配置文件,修改如下內容:
`daemonize yes`
/path/redis-server /path/redis.conf #這里的conf可以自由指定,可以先通過 --help來看一下
### 啟動客戶端
path/to/redis/bin/redis-cli [-h localhost -p 6379 ] # 如果是要在redis的shell中顯示中文的話可以加上 --raw 啟動
## 參考鏈接
* [官網鏈接](https://redis.io/)
* [redis中文網](https://www.redis.net.cn/)
* [redis命令參考](http://redisdoc.com/index.html)
* [菜鳥教程](https://www.runoob.com/redis/redis-tutorial.html)