一、入門概述
1.是什么
Redis:REmote DIctionary Server(遠程字典服務器) 是完全開源免費的,用C語言編寫的,遵守BSD協議,是一個高性能的(key/value)分布式內存數據庫,基於內存運行並支持持久化的NoSQL數據庫,是當前最熱門的NoSql數據庫之一,也被人們稱為數據結構服務器。
Redis 與其他 key - value 緩存產品(memcached)有以下三個特點:
1)持久化:Redis支持數據的持久化,可以將內存中的數據保持在磁盤中,重啟的時候可以再次加載進行使用
2)豐富數據結構:Redis不僅僅支持簡單的key-value類型的數據,同時還提供list,set,zset,hash等數據結構的存儲
3)數據備份:Redis支持數據的備份,即master-slave模式的數據備份
2.能干嘛
1)內存存儲和持久化:redis支持異步將內存中的數據寫到硬盤上,同時不影響繼續服務
2)取最新N個數據的操作,如:可以將最新的10條評論的ID放在Redis的List集合里面
3)模擬類似於HttpSession這種需要設定過期時間的功能
4)發布、訂閱消息系統
5)定時器、計數器
3.去哪下
Http://redis.io/
Http://www.redis.cn/
4.怎么玩
1 數據類型、基本操作和配置
2 持久化和復制,RDB/AOF
3 事務的控制
4. 復制
。。。 。。。
二、VMWare+VMTools千里之行始於足下
1.VMWare虛擬機的安裝
2.CentOS或者RedHad5的安裝
1)如何查看自己的linux是32位還是64位
getconf LONG_BIT
返回是多少就是幾位
2)假如出現了不支持虛擬化的問題
我的筆記本cpu是64位的,操作系統也是64位的,問題應該如虛擬機右下角提示所說,
是“宿主機BIOS設置中的硬件虛擬化被禁用了。”
需要打開筆記本BIOS中的IVT對虛擬化的支持。
找到菜單“Security”–“System Security”,
將Virtualization Technology(VTx)和Virtualization Technology DirectedI/O(VTd)設置為 Enabled。
保存並退出BIOS設置,重啟電腦,
3.VMTools的安裝
4.設置共享目錄
5.上述環境都OK后開始進行Redis的服務器安裝配置
三、Redis的安裝
1.Windows版安裝
Window 下安裝
下載地址:https://github.com/dmajkic/redis/downloads
下載到的Redis支持32bit和64bit。根據自己實際情況選擇,將64bit的內容cp到自定義盤符安裝目錄取名redis。 如 C:\reids
打開一個cmd窗口 使用cd命令切換目錄到 C:\redis 運行 redis-server.exe redis.conf 。
如果想方便的話,可以把redis的路徑加到系統的環境變量里,這樣就省得再輸路徑了,后面的那個redis.conf可以省略,
如果省略,會啟用默認的。輸入之后,會顯示如下界面:
這時候另啟一個cmd窗口,原來的不要關閉,不然就無法訪問服務端了。
切換到redis目錄下運行 redis-cli.exe -h 127.0.0.1 -p 6379 。
設置鍵值對 set myKey abc
取出鍵值對 get myKey
說明:
基本都會使用Linux
2.Linux版安裝
1)下載獲得redis-3.0.4.tar.gz后將它放入我們的Linux目錄/opt
2)/opt目錄下,解壓命令:tar -zxvf redis-3.0.4.tar.gz
3)解壓完成后出現文件夾:redis-3.0.4
4)進入目錄:cd redis-3.0.4
5)在redis-3.0.4目錄下執行make命令
6)如果make完成后繼續執行make install
7)查看默認安裝目錄:usr/local/bin
Redis-benchmark:性能測試工具,可以在自己本子運行,看看自己本子性能如何
Redis-check-aof:修復有問題的AOF文件,rdb和aof后面講
Redis-check-dump:修復有問題的dump.rdb文件
Redis-cli:客戶端,操作入口
Redis-sentinel:redis集群使用
Redis-server:Redis服務器啟動命令
8)啟動
修改redis.conf文件將里面的daemonize no 改成 yes,讓服務在后台啟動
將默認的redis.conf拷貝到自己定義好的一個路徑下,比如/myconf
/usr/local/bin目錄下運行redis-server,運行拷貝出存放了自定義conf文件目錄下的redis.conf文件
關閉
單實例關閉:redis-cli shutdown
多實例關閉,指定端口關閉:redis-cli -p 6379 shutdown
四、Redis啟動后雜項基礎知識講解
1.單進程
單進程模型來處理客戶端的請求。對讀寫等事件的響應
是通過對epoll函數的包裝來做到的。Redis的實際處理速度完全依靠主進程的執行效率
Epoll是Linux內核為處理大批量文件描述符而作了改進的epoll,是Linux下多路復用IO接口select/poll的增強版本,
它能顯著提高程序在大量並發連接中只有少量活躍的情況下的系統CPU利用率。
2.默認16個數據庫,類似數組下表從零開始,初始默認使用零號庫
設置數據庫的數量,默認數據庫為0,可以使用SELECT <dbid>命令在連接上指定數據庫id
databases 16
3.Select命令切換數據庫
4.Dbsize查看當前數據庫的key的數量
5.Flushdb:清空當前庫
6.Flushall;通殺全部庫
7.統一密碼管理,16個庫都是同樣密碼,要么都OK要么一個也連接不上
8.Redis索引都是從零開始
9.為什么默認端口是6379
6379在是手機按鍵上MERZ對應的號碼,而MERZ取自意大利歌女Alessia Merz的名字。MERZ長期以來被antirez及其朋友當作愚蠢的代名詞。Redis作者antirez同學在twitter上說將在下一篇博文中向大家解釋為什么他選擇6379作為默認端口號。而現在這篇博文出爐,在解釋了Redis的LRU機制之后,向大家解釋了采用6379作為默認端口的原因。
參考資料:
《redis視頻》尚硅谷周陽