您好,登錄后才能下訂單哦!
redis使用指南
一、Redis簡介
redis展開來看就是remote directory server。redis是開源的,基于內存的數據結構存儲,可以作為數據庫,緩存系統或者消息隊列。它支持數據結構有字符串、列表(數組)、hashes(關聯數組)、集合、有序集合、bitmaps(位圖)、hyperloglogs、空間索引,十分的強大。redis有內建的復制功能,支持lua腳本,LRU算法,事務,持久存儲并且支持高可用(sentinel,redis cluster)。以下是redis的特點總結:
二、Redis安裝
由于redis功能十分的強大,應用十分的廣泛,目前已經被收錄到了epel倉庫,因此我們只需要將yum倉庫指向epel倉庫即可。因此這里安裝十分的簡單,直接yum install -y redis。注意我這里安裝的是redis3.2版本,目前官方最新版本為redis4。下載安裝方式十分簡單。如有想法,請戳網址
https://redis.io/download
三、配置文件詳解
通常rpm安裝的軟件包,我們可以通過如下命令查看程序相關的配置文件
[root@mysql ~]# rpm -ql redis /etc/logrotate.d/redis /etc/redis-sentinel.conf #監控(哨兵)配置文件 /etc/redis.conf #主配置文件 /etc/systemd/system/redis-sentinel.service.d /etc/systemd/system/redis-sentinel.service.d/limit.conf /etc/systemd/system/redis.service.d /etc/systemd/system/redis.service.d/limit.conf /usr/bin/redis-benchmark /usr/bin/redis-check-aof /usr/bin/redis-check-rdb /usr/bin/redis-cli #redis客戶端程序 /usr/bin/redis-sentinel /usr/bin/redis-server #redis服務端程序 /usr/bin/redis-shutdown /usr/lib/systemd/system/redis-sentinel.service /usr/lib/systemd/system/redis.service /usr/lib/tmpfiles.d/redis.conf /usr/share/doc/redis-3.2.3 /usr/share/doc/redis-3.2.3/00-RELEASENOTES /usr/share/doc/redis-3.2.3/BUGS /usr/share/doc/redis-3.2.3/CONTRIBUTING /usr/share/doc/redis-3.2.3/MANIFESTO /usr/share/doc/redis-3.2.3/README.md /usr/share/licenses/redis-3.2.3 /usr/share/licenses/redis-3.2.3/COPYING /var/lib/redis /var/log/redis #redis日志文件目錄 /var/run/redis
[root@mysql ~]# grep '^##' /etc/redis.conf ################################## INCLUDES ################################### ################################## NETWORK ##################################### ################################# GENERAL ##################################### ################################ SNAPSHOTTING ################################ ################################# REPLICATION ################################# ################################## SECURITY ################################### ################################### LIMITS #################################### ############################## APPEND ONLY MODE ############################### ################################ LUA SCRIPTING ############################### ################################ REDIS CLUSTER ############################### ################################## SLOW LOG ################################### ################################ LATENCY MONITOR ############################## ############################# EVENT NOTIFICATION ############################## ############################### ADVANCED CONFIG ###############################
grep以下可以查看redis主配置文件有哪些配置段。
使用以下命令還可以查看主配置文件中已經開啟了哪些服務。
[root@mysql2 ~]# cat /etc/redis.conf | grep -v '#' | sed '/^$/d' bind 0.0.0.0 protected-mode no port 6379 tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize no supervised no pidfile /var/run/redis/redis.pid loglevel notice logfile /var/log/redis/redis.log databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb dir /var/lib/redis slave-serve-stale-data yes slave-read-only yes repl-diskless-sync no repl-diskless-sync-delay 5 repl-disable-tcp-nodelay no slave-priority 100 appendonly no appendfilename "appendonly.aof" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes lua-time-limit 5000 cluster-enabled yes cluster-config-file nodes-6379.conf cluster-node-timeout 15000 slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-size -2 list-compress-depth 0 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes 3000 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes
接下來分析主配置文件/etc/redis.conf各個配置段的內容
3.1、INCLUDES配置段
如果你有更好的配置模板,請放在這個配置段
# include /path/to/local.conf # include /path/to/other.conf
3.2、網絡配置段
網絡配置項:
bind 127.0.0.1 #允許連接redis的客戶端IP protected-mode no #安全模式 port 6379 #端口 tcp-backlog 511 #后援隊列 timeout 0 #客戶端閑置時,關閉客戶端連接的超時時長,0表示不關閉 tcp-keepalive 300 #長連接超時時長
3.3、通用配置段
############################### GENERAL ##################################### daemonize no #默認情況下redis不以守護進程的模式運行 supervised no #是否開啟超級監管 pidfile /var/run/redis/redis.pid pid文件路徑 loglevel notice #日志級別 logfile /var/log/redis/redis.log #指定日志文件路徑 databases 16 #設定數據庫的數量
3.4、快照配置段
RDB(將內存中的數據刷寫到磁盤),RDB對內存做快照,不停地快照導出數據,缺點:容易丟失數據
save 900 1 #900秒有一個鍵值改變做一次快照 save 300 10 #300秒有10個鍵值改變做一次快照 save 60 10000 #60秒有10000鍵值改變就做一次快照 stop-writes-on-bgsave-error yes #默認情況下,如果在RDB snapshots持久化過程中出現問題,設置該參數后,Redis是不允許用戶進行任何更新操作 rdbcompression yes #在導出.RDB數據庫文件的時候采用LZF壓縮字符串和對象。想節省一些CPU資源可以設置為no,但數據量可能會很大。 rdbchecksum yes #RDB快照制作過程中會在文件的末尾寫入crc64的校驗值。這樣可能很好的保證數據的正確性。 代價是導致性能下降 dbfilename dump.rdb #快照文件名 dir ./ #快照路徑
3.5、主從配置相關段
主從配置相關的配置項,一個Master可以有多個slave主機,支持鏈式復制;Master以非阻塞方式同步數據至slave主機。
slaveof <masterip> <masterport> #用于創建從服務器 # masterauth <master-password> #主服務器認證密碼 slave-serve-stale-data yes #當slave丟失與master端的連接,或者復制仍在處理,那么slave會有下列兩種表現: yes表示,slave繼續響應客戶端的請求,盡管數據已經不同了。 no表示slave會返回"SYNC with master in progreee"的錯誤信息; slave-read-only yes #從服務器只讀 repl-diskless-sync no 新的從節點或某較長時間未能與主節點進行同步的從節點重新與主節點通信,需要做“full synchronization",此時其同步方式有兩種style: Disk-backend:主節點新創建快照文件于磁盤中,而后將其發送給從節點; Diskless:主節占新創建快照后直接通過網絡套接字文件發送給從節點;為了實現并行復制,通常需要在復制啟動前延遲一個時間段; repl-diskless-sync-delay 5 #基于網絡套接字同步延遲時長 repl-ping-slave-period 10 #ping從服務器的時間間隔 # repl-timeout 60 #主從復制超時時長 repl-disable-tcp-nodelay no #默認為no,當選擇yes的時候, master會向slave發送少量的tcp packets,這樣的一個負面影響 delay slave接受數據時間,40 milliseconds 的延遲,在 高流量或者 master slave之間中間節點數很多的情況下,建議變為 yes # repl-backlog-size 1mb #后援隊了的最大內存 # repl-backlog-ttl 3600 #后援隊列的ttl時長 slave-priority 100 #當master服務掛了后,優先級越低的slave,越有可能成為master候選人 # min-slaves-to-write 3 #最少從節點在線時,主節點允許寫數據 # min-slaves-max-lag 10 #從節點最多落后主節點多長時間 # slave-announce-ip 5.5.5.5 #對外宣稱服務器的IP # slave-announce-port 1234 #對外宣稱服務器的端口
3.6、安全相關配置段
#安全相關的 # requirepass foobared #是否設置密碼,requirepass +密碼 #rename-command CONFIG "" #重命名或禁用某些命令
3.7、limit配置段
# maxclients 10000 #客戶端并發數量 # maxmemory <bytes> #內存限制,過期會刪除key # maxclients 10000 最大并發連接數 # maxmemory <bytes> 最大可提供內存 # maxmemory-policy noeviction 內存淘汰策略 # volatile-lru -> remove the key with an expire set using an LRU algorithm 基于LRU算法將過期時間的鍵做淘汰 # allkeys-lru -> remove any key according to the LRU algorithm 基于LRU算法將所有鍵淘汰 # volatile-random -> remove a random key with an expire set 隨機淘汰 # allkeys-random -> remove a random key, any key 對所有鍵做隨機淘汰 # volatile-ttl -> remove the key with the nearest expire time (minor TTL) 基于TTL時長淘汰 # noeviction -> don't expire at all, just return an error on write operations 從不淘汰,一旦內存耗盡,報錯 默認是:# maxmemory-policy noeviction 推薦volatile-lru,volatile-ttl 如何判斷內存的淘汰?-->定量采樣 # maxmemory-samples 5
3.8、AOF模式配置段
AOF,即 APPEND ONLY MODE,意思僅追加文件。rdis內存中的數據默認是異步同步到磁盤的,如果發生宕機,會造成一些數據的丟失。AOF也是數據持久化的一種方式,可以提高數據的可靠性。AOF模式會記錄每次寫操作至指定的文件尾部實現存儲持久化;當redis重啟時,可通過重新執行文件中的命令在內存中重建出數據庫。默認使用fsync() 刷寫磁盤數據,發生斷電,或者Redis出現內部錯誤的時候最多丟失1秒數據。AOF和RDB這兩種持久化方式可以同時開啟不會發生沖突,開始AOF模式的話,Redis會把每次寫入的數據在接收后都寫入 appendonly.aof 文件。每次啟動時Redis都會把這個文件的數據讀入內存里。
appendonly no #是否記錄持久化日志 appendfilename "appendonly.aof" #AOF 文件 appendfsync everysec #每秒寫一次 #fsync() 請求操作系統馬上把數據寫到磁盤上 redis支持以下三種模式 no:redis不執行主動同步操作,而是OS進行; everysec:每秒一次; always:每語句一次,慢,但是安全; no-appendfsync-on-rewrite no #是否在后臺執行aof重寫期間不調用fsync,默認為no,表示調用; auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb #上述兩個條件同時滿足時,方會觸發重寫AOF;與上次aof文件大小相比,其增長量超過100%,且大小不少于64MB就會重寫AOF; aof-load-truncated yes # redis在啟動的時候可以加載被截斷的AOF文件,默認啟用;否則可能啟動失敗 注意:持久機制本身不能取代備份;應該制訂備份策略,對redis庫定期備份;
3.9、LUA腳本配置段
lua-time-limit 5000 #lua腳本執行時間限制
3.10、redis集群配置段
cluster-enabled yes #是否開啟集群 cluster-config-file nodes-6379.conf #集群配置文件 cluster-node-timeout 15000 #集群節點通信超時時長
3.11、慢啟動日志配置段
慢啟動日志用于記錄超過指定時間的查詢,但需要注意的是:運行時間不包括各種I/O時間。
例如:連接客戶端,發送響應數據等。
slowlog-log-slower-than 10000 slowlog-max-len 128 #慢查詢日志長度,這個長度沒有限制,單位為微妙,只要有足夠的內存就行可以通過 SLOWLOG RESET 來釋放內存
3.12、延遲監控配置段
latency-monitor-threshold 0
3.13、事件通知配置段
notify-keyspace-events ""
3.14、redis高級配置段
配置redis的高級選項
hash-max-ziplist-entries 512 #每一個對應的hash能存儲的最大entries hash-max-ziplist-value 64 #每一個對應的hash能存儲的最大value #當有大量數據時,適合用哈希編碼但需要更多的內存,元素數量上限不能超過給定限制。 list-max-ziplist-entries 512 list-max-ziplist-value 64 #與哈希相類似,list數據元素較少的情況下,可以用另一種方式來編碼從而節省大量空間。 set-max-intset-entries 512 #set 編碼形式為是64位無符號整型數字構成的字符串。該參數來限制這種情況下使用這種編碼的最大上限的。 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 #和 hashes,lists 相似,為了節約空間 sorted sets 也使用特殊的編碼方式。這種編碼只適合長度和元素都符合上面限制的有序序列。 hll-sparse-max-bytes 3000 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes #當子進程重寫AOF文件,以下選項開啟時,AOF文件會每產生32M數據同步一次,這有利于避免寫入磁盤延遲。
四、redis用法簡介
4.1、redis命令選項
使用redis-cli -h命令可以查看redis客戶端命令的用法。選項用法其實很簡單,搞定英語應該不在話下。
[root@mysql ~]# redis-cli -h redis-cli 3.2.3 Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]] -h <hostname> Server hostname (default: 127.0.0.1). -p <port> Server port (default: 6379). -s <socket> Server socket (overrides hostname and port). -a <password> Password to use when connecting to the server. -r <repeat> Execute specified command N times. -i <interval> When -r is used, waits <interval> seconds per command. It is possible to specify sub-second times like -i 0.1. -n <db> Database number. -x Read last argument from STDIN. -d <delimiter> Multi-bulk delimiter in for raw formatting (default: \n). -c Enable cluster mode (follow -ASK and -MOVED redirections). --raw Use raw formatting for replies (default when STDOUT is not a tty). --no-raw Force formatted output even when STDOUT is not a tty. --csv Output in CSV format. --stat Print rolling stats about server: mem, clients, ... --latency Enter a special mode continuously sampling latency. --latency-history Like --latency but tracking latency changes over time. Default time interval is 15 sec. Change it using -i. --latency-dist Shows latency as a spectrum, requires xterm 256 colors. Default time interval is 1 sec. Change it using -i. --lru-test <keys> Simulate a cache workload with an 80-20 distribution. --slave Simulate a slave showing commands received from the master. --rdb <filename> Transfer an RDB dump from remote server to local file. --pipe Transfer raw Redis protocol from stdin to server. --pipe-timeout <n> In --pipe mode, abort with error if after sending all data. no reply is received within <n> seconds. Default timeout: 30. Use 0 to wait forever. --bigkeys Sample Redis keys looking for big keys. --scan List all keys using the SCAN command. --pattern <pat> Useful with --scan to specify a SCAN pattern. --intrinsic-latency <sec> Run a test to measure intrinsic system latency. The test will run for the specified amount of seconds. --eval <file> Send an EVAL command using the Lua script at <file>. --ldb Used with --eval enable the Redis Lua debugger. --ldb-sync-mode Like --ldb but uses the synchronous Lua debugger, in this mode the server is blocked and script changes are are not rolled back from the server memory. --help Output this help and exit. --version Output version and exit. Examples: cat /etc/passwd | redis-cli -x set mypasswd redis-cli get mypasswd redis-cli -r 100 lpush mylist x redis-cli -r 100 -i 1 info | grep used_memory_human: redis-cli --eval myscript.lua key1 key2 , arg1 arg2 arg3 redis-cli --scan --pattern '*:12345*'
一些簡單命令的操作
連接redis服務端
[root@mysql ~]# redis-cli 127.0.0.1:6379>
選擇第1數據庫
127.0.0.1:6379> select 1 OK
選擇第15個數據庫
127.0.0.1:6379[1]> select 15 OK 127.0.0.1:6379[15]>
選擇第17個庫,報錯,redis默認16個庫
127.0.0.1:6379[15]> select 17 (error) ERR invalid DB index
選擇默認庫
127.0.0.1:6379[15]> select 0 OK
使用幫助,查看transaction的使用,當然你按下tab鍵就可以查看其他的命令的使用
127.0.0.1:6379> help @transactions DISCARD - summary: Discard all commands issued after MULTI since: 2.0.0 EXEC - summary: Execute all commands issued after MULTI since: 1.2.0 MULTI - summary: Mark the start of a transaction block since: 1.2.0 UNWATCH - summary: Forget about all watched keys since: 2.2.0 WATCH key [key ...] summary: Watch the given keys to determine execution of the MULTI/EXEC block since: 2.2.0
按下tab可切換查看不同的選項
127.0.0.1:6379> help @
輸入命令時會自動提示輸入后面的內容,相當的方便
127.0.0.1:6379> set key value [EX seconds] [PX milliseconds] [NX|XX]
4.2、redis數據類型
1.string 字符串
redis String是最常用的一種數據類型,普通的key/value存儲都可以歸為此類;
foo->bar 鍵值關系 #查看string字符串相關操作命令 help @string #設置鍵值 127.0.0.1:6379> SET testkey 'tom' OK #獲取鍵值 127.0.0.1:6379> get testkey "tom" #追加鍵值,往后補值 127.0.0.1:6379> append testkey ' neo' (integer) 9 #刪除鍵 127.0.0.1:6379> del testkey (integer) 1 #獲取鍵 127.0.0.1:6379> get testkey (nil) #設定多個鍵值 127.0.0.1:6379> mset name 'tom' age 12 OK #獲取多個鍵值 127.0.0.1:6379> mget name age 1) "tom" 2) "12" #設置數值1 27.0.0.1:6379> set counts 1 OK #獲取數值 127.0.0.1:6379> get counts "1" #減一操作 127.0.0.1:6379> decr counts (integer) 0 127.0.0.1:6379> get counts "0" #加一操作 127.0.0.1:6379> incr counts (integer) 1 127.0.0.1:6379> incr counts (integer) 2 #獲取數值 127.0.0.1:6379> get counts "2"
2.list 列表
redis list 類型其實就是每個子元素都是 string 類型的雙向鏈表,這就意味著即使你有成千上萬中元素在list中,添加一個新元素到list開頭或者結尾的操作算法時間復雜度都是O(1)。
#查看list列表相關操作命令 help @list l:left r:right #在列表中追加一個值 127.0.0.1:6379> lpush mylist 'monday' (integer) 1 #按索引查看列表中的元素,查看[0]號元素,即第一個元素 127.0.0.1:6379> lindex mylist 0 "monday" #在列表中追加一個值 127.0.0.1:6379> lpush mylist 'sunday' (integer) 2 #按索引查看列表中的元素 127.0.0.1:6379> lindex mylist 0 "sunday" #按索引查看列表中的元素,查看第二個元素 127.0.0.1:6379> lindex mylist 1 "monday" #從列表右邊追加一個值 127.0.0.1:6379> rpush mylist 'tuesday' (integer) 3 127.0.0.1:6379> lindex mylist 2 "tuesday" #從列表右邊刪除一個值 127.0.0.1:6379> rpop mylist "Tuesday" 127.0.0.1:6379> lindex mylist 2 (nil) #獲取列表的長度 127.0.0.1:6379> llen mylist (integer) 2 127.0.0.1:6379> lpop mylist "sunday" 127.0.0.1:6379> llen mylist (integer) 1
3. hash
redis hash是一個string類型的field和value的映射表.
#查看hash類型相關操作命令 help @hash #設定hash鍵值為stu1,字段id,值為1 127.0.0.1:6379> hset stu1 id 1 (integer) 1 #設定另一個hash數據 127.0.0.1:6379> hset stu1 name 'tom' (integer) 1 127.0.0.1:6379> hset stu1 age 12 (integer) 1 #獲取hash字段中所有的值 127.0.0.1:6379> hmget stu1 id name age 1) "1" 2) "tom" 3) "12" #獲取hash中所有的值 127.0.0.1:6379> hvals stu1 1) "1" 2) "tom" 3) "12" #獲取hash中所有的字段 127.0.0.1:6379> hkeys stu1 1) "id" 2) "name" 3) "age" #獲取hash中所有字段及對應的值 127.0.0.1:6379> hgetall stu1 1) "id" 2) "1" 3) "name" 4) "tom" 5) "age" 6) "12"
4 set 集合
redis的set是string類型的無序集合。
#查看set數據類型相關的操作命令 127.0.0.1:6379> help @set #在students集合中添加多個成員 127.0.0.1:6379> sadd students 'tom' 'jerry' 'lili' (integer) 3 #在teachers集合中添加多個成員 127.0.0.1:6379> sadd teachers 'sam' 'jerry' (integer) 2 #將 students集合中的‘lili’移到teachers集合 127.0.0.1:6379> smove students teachers 'lili' (integer) 1 #獲取集合中所有的成員 127.0.0.1:6379> smembers students 1) "tom" 2) "jerry" 127.0.0.1:6379> smembers teachers 1) "lili" 2) "sam" 3) "jerry" #獲取兩個集合的交集 127.0.0.1:6379> sinter students teachers 1) "jerry" #獲取兩個集合的并集 127.0.0.1:6379> sunion students teachers 1) "lili" 2) "tom" 3) "sam" 4) "jerry" #students集合中有那些成員teachers集合不存在 127.0.0.1:6379> sdiff students teachers 1) "tom" #和上面相反 127.0.0.1:6379> sdiff teachers students 1) "lili" 2) "sam" #隨機刪除集合中的一個成員 127.0.0.1:6379> spop students 1 1) "tom" #刪除一個成員 127.0.0.1:6379> srem students 'tom' (integer) 0
5 sorted set 有序集合
redis的sorted set是string類型的有序集合。
#獲取有序集合數據類型相關的操作命令用法 127.0.0.1:6379> help @sorted_set #有序添加stus集合的成員 127.0.0.1:6379> zadd stus 1 'tom' 2 'jerry' 3 'lucy' (integer) 3 #有序添加teas集合的成員 127.0.0.1:6379> zadd teas 1 'sam' 2 'jerry' 3 'lili' (integer) 3 #獲取有序集合成員的個數 127.0.0.1:6379> zcard teas (integer) 3 #同上 127.0.0.1:6379> ZCARD stus (integer) 3 #獲取索引 127.0.0.1:6379> zrank teas jerry (integer) 1 #通過索引獲取值 127.0.0.1:6379> zrange stus 1 2 1) "jerry" 2) "lucy" #通過分數獲取有序集合中的對應的值 127.0.0.1:6379> ZRANGEBYSCORE stus 1 2 1) "tom" 2) "jerry" #添加一個有序集合 127.0.0.1:6379> ZADD ecscores 67 'tom' 33 'lili' 89 'michael' 55 'sam' (integer) 4 #通過分數獲取有序集合中的對應的值 127.0.0.1:6379> ZRANGEBYSCORE ecscores 44 90 1) "sam" 2) "tom" 3) "michael"
4.3、redis客戶端/服務端命令使用
client端命令
#獲取客戶端名字,默認為空 127.0.0.1:6379> CLIENT GETNAME (nil) #設置客戶端名字 127.0.0.1:6379> CLIENT SETNAME 'mysql' OK #設置客戶端名字 127.0.0.1:6379> CLIENT GETNAME "mysql" #列出客戶端 127.0.0.1:6379> CLIENT list id=6 addr=127.0.0.1:55374 fd=5 name= age=1619 idle=1619 flags=N db=0 sub=0 psub=0 multi id=7 addr=127.0.0.1:55376 fd=6 name=mysql age=579 idle=0 flags=N db=0 sub=0 psub=0 mul #暫停客戶端 127.0.0.1:6379> CLIENT PAUSE #殺死客戶端 127.0.0.1:6379> CLIENT KILL #客戶端是否響應 127.0.0.1:6379> CLIENT REPLY
server端命令
#獲取服務端詳實信息,info命令很重要,幾乎可以查看各種各樣的詳盡的信息 127.0.0.1:6379> info # Server 服務端信息 redis_version:3.2.3 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:672aed6eb816ad6c redis_mode:standalone os:Linux 3.10.0-514.el7.x86_64 x86_64 arch_bits:64 multiplexing_api:epoll gcc_version:4.8.5 process_id:9087 run_id:4788b467cdf1f8055eca00ef6bbe57b55ef20bde tcp_port:6379 uptime_in_seconds:12596 uptime_in_days:0 hz:10 lru_clock:6928199 executable:/usr/bin/redis-server config_ # Clients 客戶端信息 connected_clients:2 client_longest_output_list:0 client_biggest_input_buf:0 blocked_clients:0 # Memory 內存信息 used_memory:834424 used_memory_human:814.87K used_memory_rss:6094848 used_memory_rss_human:5.81M used_memory_peak:834424 used_memory_peak_human:814.87K total_system_memory:1023938560 #總共內存 total_system_memory_human:976.50M used_memory_lua:37888 used_memory_lua_human:37.00K maxmemory:0 #內存無限制 maxmemory_human:0B maxmemory_policy:noeviction mem_fragmentation_ratio:7.30 mem_allocator:jemalloc-3.6.0 # Persistence 持久化相關信息 loading:0 rdb_changes_since_last_save:0 rdb_bgsave_in_progress:0 rdb_last_save_time:1500090506 rdb_last_bgsave_status:ok rdb_last_bgsave_time_sec:0 rdb_current_bgsave_time_sec:-1 aof_enabled:0 aof_rewrite_in_progress:0 aof_rewrite_scheduled:0 aof_last_rewrite_time_sec:-1 aof_current_rewrite_time_sec:-1 aof_last_bgrewrite_status:ok aof_last_write_status:ok # Stats 統計數據信息,很重要 total_connections_received:6 total_commands_processed:82 instantaneous_ops_per_sec:0 total_net_input_bytes:3065 total_net_output_bytes:35815120 instantaneous_input_kbps:0.00 instantaneous_output_kbps:0.00 rejected_connections:0 sync_full:0 sync_partial_ok:0 sync_partial_err:0 expired_keys:0 evicted_keys:0 keyspace_hits:42 keyspace_misses:1 pubsub_channels:0 pubsub_patterns:0 latest_fork_usec:852 migrate_cached_sockets:0 # Replication #主從復制相關信息 role:master connected_slaves:0 master_repl_offset:0 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0 # CPU相關 used_cpu_sys:8.24 內核空間 used_cpu_user:4.10 用戶空間 used_cpu_sys_children:0.01 used_cpu_user_children:0.00 # Cluster信息 cluster_enabled:0 # Keyspace db0:keys=10,expires=0,avg_ttl=0 鍵 過期時長 ttl 127.0.0.1:6379> info memory # Memory 內存信息 #單獨顯示CPU信息 127.0.0.1:6379> info CPU # CPU used_cpu_sys:8.56 used_cpu_user:4.16 used_cpu_sys_children:0.01 used_cpu_user_children:0.0 #關機命令 127.0.0.1:6379> SHUTDOWN [NOSAVE|SAVE] #confi命令 配置服務器屬性 127.0.0.1:6379> CONFIG SET 127.0.0.1:6379> CONFIG GET 127.0.0.1:6379> CONFIG REWRITE 127.0.0.1:6379> CONFIG RESETSTAT
redis的使用暫且先介紹到這里,下次我們再介紹redis的應用。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。