1)REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統。html
2)Redis的特色node
Redis 是徹底開源的,遵照 BSD 協議,是一個高性能的 key-value 數據庫。git
Redis 與其餘 key - value 緩存產品有如下三個特色:程序員
3)Redis的優點github
4)Redis與其餘key-valye存儲有什麼不一樣redis
(以上內容摘自菜鳥教程)數據庫
1)Redis的下載。網址:https://github.com/tporadowski/redis/releaseswindows
(1)點擊圖中紅框內容下載Redis包(寫文時間是2020.11.13,下載的Redis包是5.0.10版本)。Redis有64和32版本,根據本身電腦狀況選擇緩存
(2)下載之後解壓縮到C盤,而後更改文件夾的名字爲redis。打開文件夾之後,文件內容以下:安全
(3)打開一個cmd窗口,使用 cd 命令切換目錄到 C:\redis 運行此命令:redis-server.exe redis.windows.conf
若是想方便的話,能夠把 redis 的路徑加到系統的環境變量裏,這樣就免得再輸路徑了,後面的那個 redis.windows.conf 能夠省略,若是省略,會啓用默認的。輸入以後,會顯示以下界面:
(4)打開另外一個cmd窗口,不要關閉上一個,關閉之後會關閉服務的。
仍是在cmd中用cd C:/redis命令進入目錄,而後運行此命令:
redis-cli.exe -h 127.0.0.1 -p 6379
設置鍵值對:
set myKey abc
取出鍵值對:
get myKey
效果以下圖:
這樣就安裝好了。
(5)多說幾句:之後若是想使用Redis,須要再次打開此窗口,否則不能用。(也就是使用第(3)步)
也能夠把Redis添加到服務中,開機啓動,這樣就不用每次開機就打開了。以前寫過一個帖子,若是想把redis放到服務中,請移步:
https://www.cnblogs.com/littletreeshang/p/10772988.html
帖子內容以下:
3.Redis配置
(1)獲取配置
Redis的配置文件在Redis目錄裏面,在我這裏就是C:/Redis目錄下。Redis的配置文件叫 redis.windows.conf。
查看配置也能夠經過命令查看,語法格式以下:
redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME
例子:
redis 127.0.0.1:6379> CONFIG GET loglevel 1) "loglevel" 2) "notice"
如圖:
若是想獲取全部配置,使用*:
redis 127.0.0.1:6379> CONFIG GET *
獲取全部配置結果如圖:
(2)編輯配置
編輯配置有兩種方式
1)直接修改配置文件:redis.windows.conf;
2)經過命令修改配置。
經過命令修改語法:
redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE
例子:
redis 127.0.0.1:6379> CONFIG SET loglevel "notice" OK redis 127.0.0.1:6379> CONFIG GET loglevel 1) "loglevel" 2) "notice"
如圖:
(3)配置文件說明(以當前版本(5.0.10)爲例若是要是不肯定的或者沒查到的說明前面加*,若是命令後面帶:就是後面的值不能以空格隔開)
說明:這裏就先整理一下經常使用的,其餘的等熟悉之後再補充。在找命令的時候發現一個比較厲害的博客,他那裏的Redis配置詳解系列講解的特別特別好,並且很是的詳細,請你們移步http://www.cs-cjl.com/
1)dbfilename dump.rdb
鏡像備份文件的文件名,默認爲 dump.rdb
2) requirepass foobared
設置客戶端鏈接後進行任何其餘指定前須要使用的密碼。警告:由於redis 速度至關快,因此在一臺比較好的服務器下,一個外部的用戶能夠在一秒鐘進行150K 次的密碼嘗試,這意味着你須要指定很是很是強大的密碼來防止暴力破解。
3)masterauth
當主數據庫鏈接須要密碼驗證時,在這裏指定
4)cluster-announce-ip
*沒有查到具體的用法,可是好像是搭建Redis集羣的時候的對外IP
5)unixsocket
*redis支持經過unix socket方式來接收請求,能夠經過unixsocket配置項來指定unix socket文件的路徑,並經過unixsocketperm來指定文件的權限
6)logfile
配置log 文件地址,默認使用標準輸出,即打印在命令行終端的窗口上,修改成日誌文件目錄。
日誌記錄方式,默認爲標準輸出,若是配置 Redis 爲守護進程方式運行,而這裏又配置爲日誌記錄方式爲標準輸出,則日誌將會發送給 /dev/null
7)pidfile
當 Redis 以守護進程方式運行時,Redis 默認會把 pid 寫入 /var/run/redis.pid 文件,能夠經過 pidfile 指定。你能夠配置到其餘地址。當運行多個redis 服務時,須要指定不一樣的pid 文件和端口
8)slave-announce-ip
9)replica-announce-ip
10)maxmemory 0
指定 Redis 最大內存限制,Redis 在啓動時會把數據加載到內存中,達到最大內存後,Redis 會先嚐試清除已到期或即將到期的 Key,當此方法處理 後,仍然到達最大內存設置,將沒法再進行寫入操做,但仍然能夠進行讀取操做。Redis 新的 vm 機制,會把 Key 存放內存,Value 會存放在 swap 區
11)proto-max-bulk-len 536870912
12)client-query-buffer-limit 1073741824
13)maxmemory-samples 5
14)lfu-log-factor 10
Redis LFU 回收策略。
15)lfu-decay-time 1
16)timeout 0
當客戶端閒置多長秒後關閉鏈接,若是指定爲 0 ,表示關閉該功能。
17)active-defrag-threshold-lower 10
18)active-defrag-threshold-upper 100
19)active-defrag-ignore-bytes 104857600
20)active-defrag-cycle-min 5
21)active-defrag-cycle-max 75
22)active-defrag-max-scan-fields 1000
23)auto-aof-rewrite-percentage 100
24)auto-aof-rewrite-min-size 67108864
25)hash-max-ziplist-entries 512
26)hash-max-ziplist-value 64
27)stream-node-max-bytes 4096
28)stream-node-max-entries 100
29)list-max-ziplist-size -2
30)list-compress-depth 0
31)set-max-intset-entries 512
32)zset-max-ziplist-entries 128
33)zset-max-ziplist-value 64
34)hll-sparse-max-bytes 3000
35)lua-time-limit 5000
36)slowlog-log-slower-than 10000
37)latency-monitor-threshold 0
38)slowlog-max-len 128
39)port 6379
40)cluster-announce-port 0
41)cluster-announce-bus-port 0
42)tcp-backlog 511
43)databases 16
設置數據庫的數量,默認數據庫爲0,可使用SELECT 命令在鏈接上指定數據庫id。
44)repl-ping-slave-period 10
45)repl-ping-replica-period 10
46)repl-timeout 60
47)repl-backlog-size 1048576
48)repl-backlog-ttl 3600
49)maxclients 10000
指定 Redis 最大內存限制,Redis 在啓動時會把數據加載到內存中,達到最大內存後,Redis 會先嚐試清除已到期或即將到期的 Key,當此方法處理 後,仍然到達最大內存設置,將沒法再進行寫入操做,但仍然能夠進行讀取操做。Redis 新的 vm 機制,會把 Key 存放內存,Value 會存放在 swap 區
50)watchdog-period 0
51)slave-priority 100
52)replica-priority 100
53)slave-announce-port 0
見8)
54)replica-announce-port 0
見9)
55)min-slaves-to-write 0
56)min-replicas-to-write 0
57)min-slaves-max-lag 10
58)min-replicas-max-lag 10
59)hz 10
60)cluster-node-timeout 15000
61)cluster-migration-barrier 1
62)cluster-slave-validity-factor 10
63)cluster-replica-validity-factor 10
64)repl-diskless-sync-delay 5
65)tcp-keepalive 0
66)cluster-require-full-coverage yes
67)cluster-slave-no-failover no
68)cluster-replica-no-failover no
69)no-appendfsync-on-rewrite no
70)slave-serve-stale-data yes
71)replica-serve-stale-data yes
72)slave-read-only yes
73)replica-read-only yes
74)slave-ignore-maxmemory yes
75)replica-ignore-maxmemory yes
76)stop-writes-on-bgsave-error yes
77)daemonize no
78)rdbcompression yes
指定存儲至本地數據庫時是否壓縮數據,默認爲 yes,Redis 採用 LZF 壓縮,若是爲了節省 CPU 時間,能夠關閉該選項,但會致使數據庫文件變的巨大。
79)rdbchecksum yes
80)activerehashing yes
指定是否激活重置哈希,默認爲開啓。
81)activedefrag no
是否啓用碎片整理。
82)protected-mode yes
83)repl-disable-tcp-nodelay no
84)repl-diskless-sync no
85)aof-rewrite-incremental-fsync yes
86)rdb-save-incremental-fsync yes
87)aof-load-truncated yes
88)aof-use-rdb-preamble yes
89)lazyfree-lazy-eviction no
90)lazyfree-lazy-expire no
91)lazyfree-lazy-server-del no
92)slave-lazy-flush no
93)replica-lazy-flush no
94)dynamic-hz yes
95)maxmemory-policy noeviction
當內存使用值到達 maxmemory 時使用的刪除策略,默認值爲 noeviction。
注意:在內存到達限值,而且沒有合適的鍵被刪除的狀況下,不管選擇的是什麼過時策略,Redis 都會返回出錯。
96)loglevel notice
指定日誌記錄級別,Redis 總共支持四個級別:debug、verbose、notice、warning,默認爲 notice
97)supervised no
98)appendfsync everysec
指定更新日誌條件,共有 3 個可選值:
99)appendonly no
指定是否在每次更新操做後進行日誌記錄,Redis 在默認狀況下是異步的把數據寫入磁盤,若是不開啓,可能會在斷電時致使一段時間內的數據丟失。由於 redis 自己同步數據文件是按上面 save 條件來同步的,因此有的數據會在一段時間內只存在於內存中。默認爲 no
100)dir C:\\redis
指定本地數據庫存放目錄
101)save: 900 1 300 10 60 10000
指定在多長時間內,有多少次更新操做,就將數據同步到數據文件,能夠多個條件配合。
Redis 默認配置文件中提供了三個條件:
save 900 1
save 300 10
save 60 10000
分別表示 900 秒(15 分鐘)內有 1 個更改,300 秒(5 分鐘)內有 10 個更改以及 60 秒內有 10000 個更改。
105)client-output-buffer-limit: normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60
103)unixsocketperm 0
104)slaveof <masterip> <masterport>
設置當本機爲 slave 服務時,設置 master 服務的 IP 地址及端口,在 Redis 啓動時,它會自動從 master 進行數據同步
105)notify-keyspace-events
106)bind 127.0.0.1
綁定的主機地址
大概就是這樣了,若是有什麼錯誤或者建議,但願你們從評論區指出,你們一塊兒學習一塊兒進步~