Redis 簡介
REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統。
Redis是一個開源的使用ANSI C語言編寫、遵守BSD協議、支持網絡、可基於內存亦可持久化的日志型、,是一個高性能的key-value數據庫,並提供多種語言的API。
它通常被稱為數據結構服務器,因為值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等類型。
Redis 與其他 key - value 緩存產品有以下三個特點:
- Redis支持數據的持久化,可以將內存中的數據保存在磁盤中,重啟的時候可以再次加載進行使用。
- Redis不僅僅支持簡單的key-value類型的數據,同時還提供list,set,zset,hash等數據結構的存儲。
- Redis支持數據的備份,即master-slave模式的數據備份。
Redis 優勢
- 性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。
- 豐富的數據類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操作。
- 原子 – Redis的所有操作都是原子性的,意思就是要么成功執行要么失敗完全不執行。單個操作是原子性的。多個操作也支持事務,即原子性,通過MULTI和EXEC指令包起來。
- 豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過期等等特性。
Redis與其他key-value存儲有什么不同?
-
Redis有着更為復雜的數據結構並且提供對他們的原子性操作,這是一個不同於其他數據庫的進化路徑。Redis的數據類型都是基於基本數據結構的同時對程序員透明,無需進行額外的抽象。
-
Redis運行在內存中但是可以持久化到磁盤,所以在對不同數據集進行高速讀寫時需要權衡內存,因為數據量不能大於硬件內存。在內存數據庫方面的另一個優點是,相比在磁盤上相同的復雜的數據結構,在內存中操作起來非常簡單,這樣Redis可以做很多內部復雜性很強的事情。同時,在磁盤格式方面他們是緊湊的以追加的方式產生的,因為他們並不需要進行隨機訪問。
參考: https://blog.csdn.net/yangwenxue1989/article/details/88884668
https://blog.csdn.net/xoofly/article/details/88832683
一、目標
在windows環境下安裝配置redis數據庫。
二、環境
windows10 64bit、redis64-3.0.501 (for windows64bit)
三、軟件下載
1.Redis數據庫下載。https://github.com/ServiceStack/redis-windows 下載的速度可能比較慢
點右側的Clone or download,然后在彈出的窗口點Download ZIP。下載就行了。
2.點擊release,可選擇不同版本進行下載。
四、安裝redis數據庫
下載好是個zip壓縮包,指定路徑進行解壓,,本文使用D:\JAVA\redis64-3.0.501 路徑。
解壓內容如下:
1. 臨時服務安裝
打開一個 cmd 窗口 使用 cd 命令切換目錄到D:\JAVA\redis64-3.0.501 路徑,運行:
redis-server.exe redis.windows.conf
顯示如下界面,則服務端啟動成功。
備注:通過以上面命令,會創建Redis臨時服務,不會在window Service列表出現Redis服務名稱和狀態,此窗口關閉,服務會自動關閉。可以裝一個Redis Management測試一下,當關閉這個臨時服務是數據庫連不上的。
現在進行客戶端調用,因為只有臨時服務,所以不要關閉上面窗口,另外打開一個 cmd 窗口 使用 cd 命令切換目錄到D:\JAVA\redis64-3.0.501 路徑,
運行:
redis-cli.exe
客戶端啟動完成。
敲入Set age 34 返回OK ,表示寫入內存中;我們再敲get age,會返回一個Value值34,如下圖:
2.默認服務安裝 我們不可能每次要用Redis都去開一下臨時服務,可不可以跟其它服務一樣能夠開機自啟?當然是可以得,但是有點區別,后續會講。進入Redis安裝包文件下,敲入命令注冊服務:
redis-server.exe --service-install redis.windows.conf --loglevel verbose
注:(須關閉臨時服務,否則安裝不上)
根據英文提示顯然服務已經安裝了,在window Service列表中能看到,但是沒啟動,也無法手動啟動,只有敲命令啟動/暫停/卸載服務:
redis-server.exe --service-start
redis-server.exe --service-stop
redis-server.exe --service-uninstall
(類似如上插圖)
3.自定義服務安裝 將服務重命名。進入Redis安裝包文件下,注冊服務:
redis-server.exe --service-install redis.windows.conf --Service-name RedisServer1 --loglevel verbose
備注:通過以上面命令,會在window Service列表出現"redisserver1"服務,但此服務不是啟動狀態,需要調下面命令啟動服務。
與默認安裝一樣,唯一不同的就是在相應安裝服務、啟動、關閉、卸載服務時需要加上自定義Redis服務名:
redis-server.exe --service-start --Service-name RedisServer1 redis-server.exe --service-stop --Service-name RedisServer1 redis-server.exe --service-uninstall --Service-name RedisServer1
通過命令行卸載自定義服務后,電腦重啟一下,卸載服務會全部完成
4.Redis主從服務安裝 主從服務可以實現負載均衡,其實就是把上面Redis安裝文件包,拷貝到相應目錄,修改主、從服務器配置文件中IP、Port,同時從服務器要指定主服務器 的IP、Port,按照Redis自定義服務安裝中命令進行服務安裝、服務啟動、服務關閉、服務卸載即可使用。
我本地主從服務器安裝包都還是在D:\redis-win目錄,文件夾Redis-x64-3.2.100為主服務,文件夾Redis-x64-3.2.100-2則是從服務,用的都是本地IP:127.0.0.1,生產環境大家可以根據自己實際情況進行設置。
主服務器(RedisServer1)redis.windows.conf修改如下:port 6379(默認),不需要作修改;
從服務器(RedisServer2)redis.windows.conf修改如下:port 6380;slaveof 127.0.0.1 6379,修改地方看下圖:
我們用RedisManagement分別進行兩個端口連接做客戶端,在主服務添加鍵可以同步到從服務,從服務添加無效。如果從服務沒有配置從屬關系,我們可以在Redis管理器中對從服務進行配置,打開控制台,輸入slaveof 127.0.0.1 6379,效果一樣。
我們安裝從服務時候,可以不通過配置文件來安裝指定端口和指定主機。redis-server.exe --service-install redis.windows.conf --Service-name RedisServer2 --loglevel verbose --port 6380,這樣也是指定端口安裝。
運行從服務redis-cli.exe,,這跟RedisManagement一樣,也能配從屬關系。
五、管理客戶端GUI程序
1.客戶端管理程序Redis Desktop Manager
2.我用的版本是Redis Desktop Manager v.0.7.6.15,一路下一步安裝即可。
3.連接Redis服務器
一個簡單的界面管理器。
連接成功后,如圖所示。
六、REDIS數據庫的用途
用於用戶登錄驗證的session。因為redis數據庫讀取的速度較快,所以可以提高用戶訪問網站的速度。