windows下redis安裝及配置

一、簡介:git

  redis是一個高性能的key-value數據庫:redis能讀的速度爲11萬次/秒,寫的速度是8.1萬次/秒github

  redis支持豐富的數據類型:String, List, Hash(map),Set,ordered Sets等數據類型redis

  redis的單個命令的執行操做原子性的,多個操做時redis也支持事務管理,即經過MULTI和EXEC指令包裹起來。算法

  可是,redis並無在事物上增長任何維持原子性的機制,即redis的事物管理並非原子性的。redis的事物能夠理解爲一個打包的批量執行腳本,中間的某條指令的失敗不會致使已經執行的指令作回滾,也不會結束後面的指令不作了。數據庫

  官方的說明以下:windows

    

  redis能夠運行在內存中,也能夠持久化到磁盤.redis會週期性的將更新的數據寫入磁盤,重啓的時候,能夠再次加載並使用緩存

二、安裝:安全

  去GitHub https://github.com/MSOpenTech/redis/releases 下載須要的安裝包服務器

  而後解壓到對應電腦盤app

  打開cmd命令窗口,進入解壓的目錄,運行以下命令:

  redis-server.exe redis.windows.conf

  也能夠將redis解壓的路徑配置到系統的Path環境變量中,這樣就能夠不用在進入指定目錄了。

  後面的redis.windows.conf能夠省略,省略後,會啓用默認的

三、開啓了redis服務後,再另開一個cmd命令窗口,在裏面輸入以下命令,鏈接redis服務器:

  redis-cli.exe -h 127.0.0.1 -p 6379 -a password

  其中-h和-p都是能夠省略的,使用默認的,若是沒有設置密碼,-a也是能夠省略的。

四、redis配置文件:

  位於redis安裝目錄下:redis.windows.conf

  能夠經過CONFIG命令查看或者設置配置項

  查看設置的命令爲:CONFIG GET config_setting_name 如

   

  查看全部配置項 用*號代替setting_name

  CONFIG GET *

  修改配置項:CONFIG SET config_name new_config_value

五、參數說明

  1)daemonize:是否以守護進程的方式運行,默認爲no,能夠經過修改成yes啓動守護進程

  2)當daemonize爲yes時,redis默認會將pid寫入/var/run/redis.pid文件,能夠經過pidfile指定

    pidfile /var/run/redis.pin

  3)redis默認監聽端口爲6379,能夠經過port指定

     port 6379

  4)綁定的主機地址

   bind 127.0.0.1

   5)設置當客戶端限制多長時間後關閉鏈接,若是指定爲0,表示關閉該功能

   timeout 300

   6)指定日誌記錄級別:redis共支持4個級別:debug,verbose,notice,warning 默認爲notice

   loglevel verbose

   7)日誌記錄方式,默認爲標準輸出。若是配置redis以守護進程方式運行,而這裏有配置爲日誌記錄方式爲標準輸出,則日誌將會發送給/dev/null

   logfile stdout

   8)設置數據庫的數量,默認是0,能夠經過select dbid 命令在鏈接上zh數據庫id

   database 16

   9)指定在多長時間內,有多少次更新操做就將數據同步到數據文件,可多個條件配合

   save <seconds> <changes>

   redis默認配置中提供了三個條件:

   save 900 1

   save 300 10

   save 60 10000

   分別表示900秒內一個更改,300秒內10個更改,60秒內10000個更改

  10)指定存儲到本地數據庫時,是否壓縮數據,默認爲yes。redis採用LZF壓縮,若是爲了節省CPU時間,能夠關閉該壓縮,可是會致使數據庫文件變得巨大。

   rdbcompression yes

  11)指定本地數據庫文件名,默認爲dump.rdb

   dbfilename dump.rdb

  12)指定本地數據庫存放目錄

   dir ./

  13)設置當本機爲slav服務時,設置master服務的IP地址及端口,在redis啓動時,它會自動從master進行數據同步

   slaveof <masterip> <masterport>

  14)當master服務設置了密碼保護時,slav服務鏈接master的密碼

   masterauth <master-password>

  15)設置鏈接密碼。若是設置了密碼,客戶端在鏈接redis時,須要經過auth <password> 命令提供密碼,默認關閉。

   requirepass foobared

  16)設置同一時間客戶端最大鏈接數,默認無限制。若是設置maxclients爲0,表示不限制。

   maxclients 128

  17)指定redis最大內存限制,redis在啓動時,會將數據加載到內存中,達到最大內存後,redis會先嚐試清除已到期或即將到期的key,清除後,若內存仍是不足,將沒法再寫入,但仍可讀取。

   redis新的vm機制,會把key放在內存,value放在swap區

   maxmemory <bytes>

  18)指定是否在每次更新操做後進行日誌記錄,默認爲no。redis默認是異步寫入磁盤,若是未開啓,可能會致使斷點時部分一段時間內的數據丟失,由於redis自己同步數據是按照上面save條件來同步的,全部數據會在一段時間內只存在於內存中。

   appendonly no

  19)指定更新日誌文件名,默認爲appendonly.aof

   appendfilename appendonly.aof

  20)指定更新日誌條件,共三個可選值:

   no:表示等操做系統進行數據緩存同步到磁盤(快)

   always:表示每次更新操做後,手動調用fsync()將數據寫入磁盤(慢,但安全)

   everysec:表示美秒同步一次(折中,默認值)

   appendfsync everysec

  21)指定是否啓用虛擬機內存,默認爲no。

   vm機制將數據分頁存放,由redis將訪問量較少的頁即冷數據swap到磁盤上,訪問多的頁由磁盤自動換出到內存中。

   vm-enabled no

  22)虛擬內存文件路徑,默認值爲/tmp/redis.swap,不可多個redis實例共享

   vm-swap-file /tmp/redis.swap

  23)將全部大於vm-max-memory的數據存入虛擬內存,不管vm-max-memory設置的多小,全部索引數據都是內存存儲的(redis的索引數據,就是keys)。

   也就是說,當vm-max-memory設置爲0時,其實全部value都存在於磁盤,默認值爲0

   vm-max-memory 0

  24)redis swap文件分紅了不少的page,一個對象能夠保存在多個page上面,但一個page不能被多個對象共享,vm-page-size是要根據存儲的數據大小來設定的。

   若是存儲不少小對象,page大小最好設置爲32或者64bytes,若是存儲很大的對象就可使用更大的page,若是不肯定,能夠直接使用默認值便可

   vm-page-size 32

  25)設置swap文件中的page的數量,因爲頁表(一種表示頁面空閒或使用的bitmap)是放在內存中的,在磁盤中每8個page將消耗1byte的內存。

   vm-pages 134217728

  26)設置訪問swap文件的線程數。最好不要超過機器的核數,若是設置爲0,那麼全部對swap的操做都是串行的。可能會形成比較長時間的延遲。默認值爲4

   vm-max-threads 4

  27)設置在向客戶端應答時,是否把較小的包合併爲一個包發送,默認開啓

   glueoutputbuf yes

  28)指定在超過必定數量或者最大元素超過某一臨界值時,採用一種特殊的hash算法

   hash-max-zipmap-entries 64

   hash-max-zipmap-value 512

  29)指定是否激活重置hash,默認爲開啓。

   activerehashing yes

  30)指定包含其餘的配置文件,能夠在同一主機上,多個redis實例之間使用同一份配置文件。而同時各個實例又擁有各自特定的配置文件。

   include /path/to/local.conf

六、基本命令

名稱 說明 示例
DEL 刪除指定的key DEL key
DUMP 序列化指定key,並返回被序列化的值 DUMP key
EXISTS 檢查給定的key是否存在,存在返回1,不存在返回0 EXISTS key
EXPIRE  給key設置過時時間,時間到了,該鍵會被刪除 EXPIRE key seconds
EXPIREAT 給key設置過時時間,接收參數爲Unix時間戳

EXPIREAT key timestamp

eg:EXPIREATE key 1547537381

PEXPIRE 給key設置過時時間,以毫秒計 PEXPIRE key milliseconds
KEYS

用於查找全部符合給定模式pattern的key

返回符合給定模式的key列表

KEYS PATTERN

eg:KEYS runoob* 找到全部以runoob開頭的key

MOVE 將當前數據庫的key移動到給定的數據庫db中

MOVE key db

select 0  使用數據庫0

set test a  添加key test

move test 1 將key test移動到數據庫1中

select 1  使用數據庫1

exists test  查看test成員是否存在

get test  查看key test對應的value

PERSIST 移除key的過時時間

PERSIST key

如:expire key 10 設置key過時時間爲10秒

  ttl key  :查看key的剩餘過時時間10

  persist key  去掉key過時時間

  ttl key  :再次查看key的剩餘過時時間-1

PTTL 以毫秒爲單位返回key的剩餘的過時時間 PTTL key
TTL 以秒爲單位返回key的剩餘過時時間 TTL key
RANDOMKEY 從當前數據庫中隨機返回一個key RANDOMKEY
RENAME

修改一個key的名稱

若是新的名稱的成員已經存在,則會覆蓋掉該名稱原始對應的值

RENAME key new_name
RENAMENX

修改一個key的名稱

只有在新的名稱的成員不存在時,才容許被修改

RENAMENX key new_name
TYPE 獲取指定key成員的類型 TYPE key

AUTH 驗證密碼 AUTH password
ECHO 打印字符串 ECHO message:ECHO 'hello world!'
PING 查看服務是否運行 PING
SELECT 切換到指定數據庫 SELECT index
QUITE 關閉當前鏈接 QUITE
相關文章
相關標籤/搜索