摘要:安裝相比之下,由于一開始就是設(shè)計(jì)在上使用的,所以安裝就比較簡(jiǎn)單了。對(duì)于其他系統(tǒng),使用它們的包管理器安裝即可。安裝完成之后,使用下面的命令啟動(dòng)。這時(shí)候需要使用命令進(jìn)行認(rèn)證,才能繼續(xù)操作。
Redis是一個(gè)高性能的內(nèi)存數(shù)據(jù)庫,它體積輕巧性能又高,在企業(yè)中被廣泛使用。
安裝Redis Windows安裝Redis是為L(zhǎng)inux系統(tǒng)設(shè)計(jì)的,但是也有團(tuán)隊(duì)為Windows做了移植。我們可以到這里下載Redis的Windows版本。
如果使用NuGet或者Chocolatey的話,也可以用這些工具安裝Windows版的Redis。
# Nuget PM> Install-Package Redis-64 # Chocolatey choco install redis-64
不過我不準(zhǔn)備使用Windows 移植版的Redis,因?yàn)镽edis是為L(zhǎng)inux設(shè)計(jì)的,而且大部分公司使用的服務(wù)器也是Linux系統(tǒng),所以我們不妨直接學(xué)習(xí)Linux版本Redis的安裝和使用。
Linux安裝相比之下,由于Redis一開始就是設(shè)計(jì)在Linux上使用的,所以Linux安裝就比較簡(jiǎn)單了。主流的Linux系統(tǒng)的官方軟件倉庫中應(yīng)該都有Redis軟件,所以直接可以利用相應(yīng)的包管理器安裝。
例如,在ArchLinux中,使用下面命令就可以安裝redis了。
sudo pacman -S redis
對(duì)于其他Linux系統(tǒng),使用它們的包管理器安裝Redis即可。
安裝完成之后,使用下面的命令啟動(dòng)Redis。
# 讓redis開機(jī)自啟 systemctl enable redis # 啟動(dòng)redis systemctl start redisDocker安裝
其實(shí)最好的辦法還是使用Docker安裝Redis,由于Docker的容器化特性,我們可以在鏡像中打包一個(gè)配置好的Redis。比方說,著名的Gitlab的Docker鏡像中就直接打包了Ruby、PostGreSQL、Redis等軟件,我們不需要任何額外配置即可使用整合好的Gitlab。
首先拉取Redis鏡像。
docker pull redis
然后啟動(dòng)Redis鏡像,其中name可以修改為自己想要的名字。
docker run --name some-redis -d redis
如果需要持久化數(shù)據(jù),需要在啟動(dòng)命令中指定數(shù)據(jù)卷,下面的命令默認(rèn)把數(shù)據(jù)存放到/data。如果需要自定義數(shù)據(jù)卷的位置,可以使用--volumes-from some-volume-container 或 -v /docker/host/dir:/data參數(shù)。
docker run --name some-redis -d redis redis-server --appendonly yes
要使用redis-cli連接Redis服務(wù)器,使用下面的命令。
docker run -it --link some-redis:redis --rm redis redis-cli -h redis -p 6379
詳細(xì)配置可以參考Docker官方文檔。
配置Redis redis.conf在Linux下,Redis的配置文件默認(rèn)在/etc/redis.conf(可能根據(jù)操作系統(tǒng)不同而產(chǎn)生變化)。配置文件有很多注釋,仔細(xì)閱讀之后我們就可以配置Redis了。完整的樣例文件可以看這里,techstay/redis.conf。文件看起來很大,其實(shí)大部分都是注釋,實(shí)際配置并不多。
下面來簡(jiǎn)單介紹一些比較重要的配置。由于我也是剛剛開始學(xué)習(xí)Redis,所以不會(huì)介紹后面的高級(jí)配置,這里只介紹最基本最重要的配置。
單位換算如果需要設(shè)置Redis的內(nèi)存大小和文件大小,就需要設(shè)置具體的數(shù)值。單位換算按照下面的進(jìn)制進(jìn)行換算,不帶b的是1000進(jìn)制,帶b的是1024進(jìn)制。存儲(chǔ)單位不區(qū)分大小寫,所以gb、gB、GB等單位都是相同的。
# 1k => 1000 bytes # 1kb => 1024 bytes # 1m => 1000000 bytes # 1mb => 1024*1024 bytes # 1g => 1000000000 bytes # 1gb => 1024*1024*1024 bytesIP地址
用bind配置Redis服務(wù)器所綁定的IP地址,默認(rèn)情況下是本地回環(huán)地址。如果不指定的話,Redis就會(huì)運(yùn)行在所有網(wǎng)絡(luò)接口上。
bind 127.0.0.1
不過需要注意,綁定到所有接口可能會(huì)引起安全問題。所以考慮到安全問題,最好讓Redis只綁定固定的幾個(gè)接口。
保護(hù)模式Redis可以運(yùn)行在保護(hù)模式,這需要顯示將保護(hù)模式打開。
protected-mode yes
如果保護(hù)模式打開,并且:1)沒有顯式使用bind綁定具體的IP地址;2)沒有設(shè)置密碼,那么Redis只會(huì)監(jiān)聽本地IPv4和IPv6的回環(huán)地址(127.0.0.1和::1)以及Unix Domain Sockets。
端口號(hào)默認(rèn)端口號(hào)是6379,如果需要較高的安全性也可以自定義端口號(hào)。
port 6379客戶端超時(shí)
當(dāng)客戶端在指定時(shí)間(單位:秒)內(nèi)沒有任何動(dòng)作時(shí),Redis就會(huì)斷開連接。默認(rèn)是0,表示不斷開。
timeout 0TCP連接存貨時(shí)間
這個(gè)參數(shù)指定TCP連接會(huì)保持多少秒,默認(rèn)是300秒。
tcp-keepalive 300守護(hù)模式
指定Redis是否以守護(hù)模式運(yùn)行。
daemonize no日志打印
先說說日志級(jí)別,有debug、verbose、notice和warning四種日志級(jí)別,顯示的信息從多到少。如果需要調(diào)試的話,使用前兩種日志級(jí)別,如果需要在生產(chǎn)環(huán)境中使用,推薦使用后兩種級(jí)別。默認(rèn)值是notice。
loglevel notice
還可以指定日志文件的位置,如果不指定的話,默認(rèn)會(huì)直接在控制臺(tái)輸出日志信息。如果Redis作為守護(hù)模式運(yùn)行,而且沒有指定日志文件位置, 那么日志會(huì)輸出到/dev/null。
logfile ""保存到文件
可以設(shè)置Redis定期將內(nèi)存數(shù)據(jù)保存到文件,以免服務(wù)器關(guān)閉之后文件丟失。在這里可以設(shè)置多個(gè)值,例如下面第一行表示每隔900秒,如果至少有1個(gè)鍵發(fā)生改變則保存數(shù)據(jù);第三行表示每隔60秒,如果至少10000個(gè)鍵發(fā)生改變則保存數(shù)據(jù)。
save 900 1 save 300 10 save 60 10000密碼
使用密碼可以提高Redis服務(wù)器的安全性。需要注意,由于Redis的高性能特性,一個(gè)用戶一秒鐘最高可以嘗試15萬次密碼。所以為了保證安全性,密碼需要盡量設(shè)置的長(zhǎng)一些。
requirepass foobared
配置文件還有其他一些配置,我就不介紹了。如果需要更詳細(xì)的配置可以直接查看配置文件的注釋,對(duì)于每個(gè)配置項(xiàng)都有詳細(xì)的介紹。
Docker配置Docker的Redis鏡像沒有redis.conf文件,如果你需要這個(gè)文件來配置Redis,可以自己打包一個(gè)包含redis.conf的鏡像。這需要編寫類似下面這樣的Dockerfile。
FROM redis COPY redis.conf /usr/local/etc/redis/redis.conf CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
當(dāng)然其實(shí)完全不用這么麻煩,直接在啟動(dòng)Redis鏡像的時(shí)候就可以指定配置文件的位置。這種辦法比較靈活,而且很簡(jiǎn)單,所以如果沒有特別需求的話這樣就可以了。
docker run -v /myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf --name myredis redis redis-server /usr/local/etc/redis/redis.conf使用Redis redis-cli
首先來介紹一下Redis的命令行工具redis-cli,我們對(duì)Redis服務(wù)器進(jìn)行操作主要通過它來進(jìn)行。
如果要查看幫助信息,可以使用redis-cli --help命令,下面列出了一部分輸出。
# redis-cli --help redis-cli 3.2.8 Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]] -hServer hostname (default: 127.0.0.1). -p Server port (default: 6379). -s Server socket (overrides hostname and port). -a Password to use when connecting to the server.
如果主機(jī)名和端口號(hào)都是默認(rèn)值的話,可以直接輸入redis-cli進(jìn)入交互式界面。如果需要連接到其他主機(jī)上的Redis服務(wù)器,可以使用-h參數(shù)指定主機(jī)名,使用-p參數(shù)指定端口號(hào),使用-a參數(shù)指定密碼。
# redis-cli 127.0.0.1:6379>Redis命令
進(jìn)入交互式界面之后,我們可以使用Redis提供的各種命令操作服務(wù)器了。Redis的命令有很多,作用也各不相同。大家可以到Redis Command查看所有命令和用途。如果不喜歡英文的話,可以查看Redis 命令參考,這是漢化過的命令文檔。
存取數(shù)據(jù)這里我就列舉一些常用的命令。首先是存取命令,使用set 鍵 值來保存一個(gè)數(shù)據(jù),保存成功后會(huì)返回OK。
127.0.0.1:6379> set fuck fuck OK
保存之后,可以使用get 鍵來獲取這個(gè)值。
127.0.0.1:6379> get fuck "fuck"查詢鍵
keys 模式用于查詢符合模式的鍵的名字,支持的查詢方式是GLOB類型的,支持*、?、[a-b]、[^a]等通配符。
127.0.0.1:6379> keys * 1) "fuck" 2) "food_num"配置Redis
和存取命令類似,還有config get和config set用于獲取和設(shè)置配置文件中的配置。比如說,要獲取配置文件的所有值,使用下面的命令。
127.0.0.1:6379> config get *
再比如,如果要設(shè)置Redis的登錄密碼,可以這么做。然后退出redis-cli并重新連接,即可生效。
127.0.0.1:6379> config set requirepass 123456認(rèn)證
如果Redis服務(wù)器設(shè)置了密碼,在進(jìn)行任何操作之前都需要認(rèn)證才能進(jìn)行,否則會(huì)提示NOAUTH。
127.0.0.1:6379> get food_num (error) NOAUTH Authentication required.
這時(shí)候需要使用auth命令進(jìn)行認(rèn)證,才能繼續(xù)操作。
127.0.0.1:6379> auth 123456
當(dāng)然,也可以直接在redis-cli連接的時(shí)候使用-a參數(shù)指定密碼。
redis-cli -a 123456超時(shí)和持久
可以使用expire命令為一個(gè)鍵設(shè)置超時(shí)值(單位:秒),在這里時(shí)間之后該值會(huì)被刪除。
127.0.0.1:6379> expire fuck 10 (integer) 1
如果10秒之后再次查看該值,會(huì)發(fā)現(xiàn)已經(jīng)不存在了。
127.0.0.1:6379> get fuck (nil)
相應(yīng)的,還有persist命令,會(huì)將該數(shù)據(jù)的超時(shí)值取消,這樣只要數(shù)據(jù)庫還在,這個(gè)數(shù)據(jù)就會(huì)一直存在。
127.0.0.1:6379> persist fuck (integer) 0
除了使用expire命令為已存在的值設(shè)置超時(shí)值,還可以在設(shè)置數(shù)據(jù)的時(shí)候直接指定超時(shí)值。
set key 100 ex 10
在指定了超時(shí)值之后,可以使用ttl命令查看距離超時(shí)值還剩多少時(shí)間。
127.0.0.1:6379> ttl fuck (integer) 17退出
最后,可以使用quit命令退出命令行界面。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/26881.html
摘要:安裝框架使用以下命令把最新版本的框架安裝到當(dāng)前目錄下的文件夾中如果沒有密碼則不需要這行把字符串存入把的值從讀取出來如果返回結(jié)果顯示,則表示和都正常運(yùn)行更多和的完整示例請(qǐng)?jiān)L問我的電子書當(dāng)遇上 HELLO,REDIS Redis 是一種 K/V 存儲(chǔ)非關(guān)系型數(shù)據(jù)庫,數(shù)據(jù)存儲(chǔ)在內(nèi)存中;跟 memcache 非常相像,不過 Redis 支持了更多的數(shù)據(jù)結(jié)構(gòu)(字符串,鏈表,哈希,集合等)。讀寫...
摘要:進(jìn)入解壓文件之后利用工具生成利用編譯安裝包可以使用命令查看位置可以看到位置編譯安裝完成之后可以看到說明擴(kuò)展已經(jīng)安裝成功了,接下來改的配置文件。 redis的安裝 1.服務(wù)器的環(huán)境 linux / CentOS release 6.5 (Final) 可以用 cat /etc/redhat-release 命令查看系統(tǒng)版本 2.下載redis(我用的是2.8.13的版本)可自己在官網(wǎng)下...
閱讀 2339·2023-04-25 14:17
閱讀 1531·2021-11-23 10:02
閱讀 2177·2021-11-23 09:51
閱讀 889·2021-10-14 09:49
閱讀 3392·2021-10-11 10:57
閱讀 2930·2021-09-24 09:47
閱讀 3058·2021-08-24 10:00
閱讀 2307·2019-08-29 18:46