什么是Redis?
Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日志型、Key-Value 數據庫,並提供多種語言的API。它和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。
另外,redis還支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。
redis的存儲分為內存存儲、磁盤存儲和log文件三部分,配置文件中有三個參數對其進行配置。save seconds updates,save配置,指出在多長時間內,有多少次更新操作,就將數據同步到數據文件。這個可以多個條件配合,比如默認配置文件中的設置,就設置了三個條件。appendonly yes/no ,appendonly配置,指出是否在每次更新操作后進行日志記錄,如果不開啟,可能會在斷電時導致一段時間內的數據丟失。appendfsync no/always/everysec ,appendfsync配置,no表示等操作系統進行數據緩存同步到磁盤,always表示每次更新操作后手動調用fsync()將數據寫到磁盤,everysec表示每秒同步一次。
redis 的6種過期策略redis 中的默認的過期策略是volatile-lru 。設置方式
config set maxmemory-policy volatile-lru maxmemory-policy 六種方式 volatile-lru:只對設置了過期時間的key進行LRU(默認值) allkeys-lru : 是從所有key里 刪除 不經常使用的key volatile-random:隨機刪除即將過期key allkeys-random:隨機刪除 volatile-ttl : 刪除即將過期的 noeviction : 永不過期,返回錯誤 maxmemory-samples 3 是說每次進行淘汰的時候 會隨機抽取3個key 從里面淘汰最不經常使用的(默認選項)
如何安裝配置?
1,使用前我們要先安裝redis,這里我們選擇在github官網上下載redis,地址是 https://github.com/MicrosoftArchive/redis/releases。在這里我們根據需要下載適合的版本壓縮包,下載好后解壓到本地目錄。
2,在cmd中進入redis目錄,運行 redis-server.exe 或 redis-server redis.windows.conf 命令,出現下圖則表示redis安裝成功。
注意:
1、開啟redis 的同時加載了conf配置文件,則表示后續需要密碼權限,這樣可以保證redis數據的安全性。在redis 配置文件里面,找到requirepass並打開其屏蔽,后面跟着的就是密碼。例如 requirepass redis123,就表示redis服務端的密碼就是redis123。
2、在window系統中使用本地作為redis服務器時要保證該頁面不被關閉。

3,將redis服務添加設置到Windows本地開機自啟動的服務中,運行 redis-server --service-install redis.windows.conf 命令。

PHP安裝Redis擴展
首先查看一下我們php環境和版本,根據版本去下載合適的php_igbinary.dll和php_redis.dll擴展文件。下載地址是http://pecl.php.net/package/redis (php的擴展庫官網)


下載好后將php_igbinary.dll和php_redis.dll文件復制到php的擴展文件目錄ext中,之后修改php.ini配置文件開啟redis擴展。添加下面兩行內容
extension=php_igbinary.dll
extension=php_redis.dll
設置好后重啟Apache服務,查看phpinfo()是否已經有了redis擴展。

測試
//echo phpinfo(); $redis = new Redis(); $redis->connect('127.0.0.1',6379); $redis->set('test','Redis擴展添加成功'); echo $redis->get('test');

