前言
redis是當前比較熱門的NOSQL系統之一,它是一個key-value存儲系統。和Memcached類似,但很大程度補償了 memcached的不足,它支持存儲的value類型相對更多,包括string、list、set、zset和hash。這些數據類型都支持 push/pop、add/remove及取交集并集和差集及更豐富的操作。在此基礎上,redis支持各種不同方式的排序。Redis數據都是緩存在計算機內存中,并且會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件。
最近在遷移測試環境,有用到Redis,記錄下linux安裝單機版Redis的過程,下面話不多說了,來一起看看詳細的介紹吧
驗證gcc-c++環境
redis使用c語言開發,所以要運行在linux上,需要gcc-c++的環境。
檢查是否有gcc-c++環境:
rpm -qa | grep gcc-c++
如果沒有進行安裝:
yum install gcc-c++
yum -y install cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc make gcc-c++ libstdc++-devel tcl
安裝Redis
首先下載安裝包:
wget http://download.redis.io/releases/redis-4.0.10.tar.gz
然后解壓至指定目錄:
tar -zxvf redis-4.0.10.tar.gz -C /usr/local/
進入到解壓后的目錄之后進行編譯:
cd /usr/local/redis-4.0.10make
編譯成功后進行安裝,設置安裝路徑:
make install PREFIX=/usr/local/redis
安裝完成后就可以到對應的目錄下啟動:
cd /usr/local/redis/bin./redis-server
順利的話,redis已經正常啟動,但是在終端會顯示啟動內容,如果不希望顯示的話,可以修改下配置。
首先去copy安裝包中的redis.conf
cp /root/redis-4.0.10/redis.conf /usr/local/redis
然后打開配置文件,將文件中的daemonize設置為yes。
vi redis.conf之后進行編輯,如下截圖:
然后帶著配置項啟動即可:
./redis-server redis.conf
驗證與操作
redis安裝完之后,我們校驗下是否正常。
首先我們啟動測試端:./redis-cli,然后進行一些簡單的操作,如下截圖:
配置說明
##基本配置daemonize no //是否以后臺進程啟動databases 16 //創建database的數量(默認選中的是database 0)save 900 1 #刷新快照到硬盤中,必須滿足兩者要求才會觸發,即900秒之后至少1個關鍵字發生變化。save 300 10 #必須是300秒之后至少10個關鍵字發生變化。save 60 10000 #必須是60秒之后至少10000個關鍵字發生變化。stop-writes-on-bgsave-error yes #后臺存儲錯誤停止寫。rdbcompression yes #使用LZF壓縮rdb文件。rdbchecksum yes #存儲和加載rdb文件時校驗。dbfilename dump.rdb #設置rdb文件名。dir ./ #設置工作目錄,rdb文件會寫入該目錄。//主從配置slaveof <masterip> <masterport> //設為某臺機器的從服務器masterauth <master-password> //連接主服務器的密碼slave-serve-stale-data yes # 當主從斷開或正在復制中,從服務器是否應答slave-read-only yes #從服務器只讀repl-ping-slave-period 10 #從ping主的時間間隔,秒為單位repl-timeout 60 #主從超時時間(超時認為斷線了),要比period大slave-priority 100 #如果master不能再正常工作,那么會在多個slave中,選擇優先值最小的一個slave提升為master,優先值為0表示不能提升為master。repl-disable-tcp-nodelay no #主端是否合并數據,大塊發送給slaveslave-priority 100 //從服務器的優先級,當主服掛了,會自動挑slave priority最小的為主服#安全requirepass foobared # 需要密碼rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 #如果公共環境,可以重命名部分敏感命令 如config #限制maxclients 10000 #最大連接數maxmemory <bytes> #最大使用內存maxmemory-policy volatile-lru #內存到極限后的處理volatile-lru -> #LRU算法刪除過期keyallkeys-lru -> #LRU算法刪除key(不區分過不過期)volatile-random -> #隨機刪除過期keyallkeys-random -> #隨機刪除key(不區分過不過期)volatile-ttl -> #刪除快過期的keynoeviction -> #不刪除,返回錯誤信息#解釋 LRU ttl都是近似算法,可以選N個,再比較最適宜T踢出的數據maxmemory-samples 3#日志模式appendonly no #是否僅要日志appendfsync no # 系統緩沖,統一寫,速度快appendfsync always # 系統不緩沖,直接寫,慢,丟失數據少appendfsync everysec #折衷,每秒寫1次no-appendfsync-on-rewrite no #為yes,則其他線程的數據放內存里,合并寫入(速度快,容易丟失的多)auto-AOF-rewrite-percentage 100 #當前aof文件是上次重寫是大N%時重寫auto-AOF-rewrite-min-size 64mb #aof重寫至少要達到的大小#慢查詢slowlog-log-slower-than 10000 #記錄響應時間大于10000微秒的慢查詢slowlog-max-len 128 # 最多記錄128條#服務端命令time #返回時間戳+微秒dbsize #返回key的數量bgrewriteaof #重寫aofbgsave #后臺開啟子進程dump數據save #阻塞進程dump數據slaveof host port #做host port的從服務器(數據清空,復制新主內容)slaveof no one #變成主服務器(原數據不丟失,一般用于主服失敗后)flushdb #清空當前數據庫的所有數據flushall #清空所有數據庫的所有數據(誤用了怎么辦?)shutdown [save/nosave] #關閉服務器,保存數據,修改AOF(如果設置)slowlog get #獲取慢查詢日志slowlog len #獲取慢查詢日志條數slowlog reset #清空慢查詢config get #選項(支持*通配)config set #選項 值config rewrite #把值寫到配置文件config restart #更新info命令的信息debug object key #調試選項,看一個key的情況debug segfault #模擬段錯誤,讓服務器崩潰object key (refcount|encoding|idletime)monitor #打開控制臺,觀察命令(調試用)client list #列出所有連接client kill #殺死某個連接 CLIENT KILL 127.0.0.1:43501client getname #獲取連接的名稱 默認nilclient setname "名稱" #設置連接名稱,便于調試 #連接命令auth 密碼 #密碼登陸(如果有密碼)ping #測試服務器是否可用echo "some content" #測試服務器是否正常交互select 0/1/2... #選擇數據庫quit #退出連接
總結
搭建redis還是比較簡單的,有興趣的小伙伴可以親自試驗下,下次再嘗試下搭個redis集群。
好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。
新聞熱點
疑難解答