Redis概述安裝
- Redis是一個開源的key-value存儲系統。
- 和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。
- 這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。
- 在此基礎上,Redis支持各種不同方式的排序。
- 與memcached一樣,爲了保證效率,數據都是緩存在內存中。
- 區別的是Redis會週期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件。
- 並且在此基礎上實現了master-slave(主從)同步。
應用場景
配合關係型數據庫做高速緩存
- 高頻次,熱門訪問的數據,降低數據庫IO
- 分佈式架構,做session共享
多樣的數據結構存儲持久化數據
說明,redis無windows版本,但微軟自己維護了一套windows的版本。本人用windows版本學的
查看默認安裝目錄:
redis-benchmark:性能測試工具,可以在自己本子運行,看看自己本子性能如何
redis-check-aof:修復有問題的AOF文件,rdb和aof後面講
redis-check-dump:修復有問題的dump.rdb文件
redis-sentinel:Redis集羣使用
redis-server:Redis服務器啓動命令
redis-cli:客戶端,操作入口
前臺啓動(不推薦)
前臺啓動,命令行窗口不能關閉,否則服務器停止
後臺啓動設置daemonize no改成yes
修改redis.conf(128行)文件將裏面的daemonize no 改成 yes,讓服務在後臺啓動。但windows不支持
可以參考https://www.cnblogs.com/zhainan-blog/p/11939828.html裝redis做成services服務
默認16個數據庫,類似數組下標從0開始,初始默認使用0號庫
使用命令 select <dbid>來切換數據庫。如: select 8
Redis是單線程+多路IO複用技術
多路複用是指使用一個線程來檢查多個文件描述符(Socket)的就緒狀態,比如調用select和poll函數,傳入多個文件描述符,如果有一個文件描述符就緒,則返回,否則阻塞直到超時。得到就緒狀態後進行真正的操作可以在同一個線程裏執行,也可以啓動線程執行(比如使用線程池)
串行 vs 多線程+鎖(memcached) vs 單線程+多路IO複用(Redis)
(與Memcache三點不同: 支持多數據類型,支持持久化,單線程+多路IO複用)