Redis運維常用命令


/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 26383 -a 123456 -r 100 -i 1 info | grep used_memory_human:
#redis外部命令查看info信息
#-a指定密碼,-h指定主機,-p指定端口,-r運行這個命令多少次,-i運行這個命令的間隔,

/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 26383  config get "maxmemory"
/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 26383  config get "maxmemory" | sed -n '2p'
#查看配置文件中maxmemory的值,查看第二行

/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 26383 info | grep used_memory_rss: | awk -F ":" '{print $2}'
#查看redis使用的物理內存,相除就可以計算出比例

 /usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 26383  set "aaa2d2df2" "bbb"
#設置key value

 /usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 26383  get "aaa2d2df2"
#查看key

/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 26383 keys "aaa2d2df2"     
/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 26383 exists "aaa2d2df2"
#查看某個key是否存在

/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 26383  config get "*"
#查看redis運行期間可以臨時修改的參數

/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 26383  config set "maxmemory" "8000000000"
#修改redis的最大支持內存

/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 26383 info | grep config_file
#查看redis的配置文件在哪

select 0
select 3
select 15
#默認進入redis時就是db 0,一般寫入到redis都是寫入到db 0

KEYS *
#redis查看當前當前庫所有的key
#在shell命令行下查看,要用轉義符/data/mxw/tools/redis1/bin/redis-cli -p 6579 keys \*

CONFIG GET *
#查看當前redis的配置信息

config set stop-writes-on-bgsave-error no
#強制停止redis快照導致,redis運行用戶沒有權限寫rdb文件或者磁盤空間滿了,解決辦法:


#清redis緩存中所有數據
./redis-cli
#進入
dbsize
#默認顯示當前db里面的key的數量
flushall
#Remove all keys from all databases

#刪除redis當前數據庫中的所有Key
flushdb

#刪除redis所有數據庫中的key
flushall


redis-cli -n 0 keys “account*” | xargs redis-cli -n 0 del
redis-cli -n 1 keys “*” | xargs redis-cli -n 0 del
#批量刪除多個key,前提是該類型的key可以用正則匹配出來
#-n 0是切換到db 0,刪除db 0 里面所有的key

redis-cli keys “*” | xargs redis-cli del
#默認的所有操作都是針對db 0 的,不論讀寫

keys *
#返回滿足給定pattern的所有key,*代表取出多有key ,xiaojun* ,代表xiaojun大頭的keys

exists
#確認一個key是否存在

exists name 
#沒有返回0,有返回1

del age
#刪除一個key

expire
#設置一個key過期時間

expir name 10 
#設置一個存在一個存在的鍵的過期時間

ttl name 
#查看key的存活時間,-1表示過期

select 0
#表示進入到0數據庫 ,(進入redis的時候,默認是0數據庫)

select 0
set age 30
get age
move age 1
#(0到15的值,表示將age移動到1數據庫)
select 1
get age

persist
#移除給定key的過期時間
expir age 300
ttl age
persist age
ttl age 
#值為-1 表示取消了過期時間


randomkey 
#隨機返回key空間的一個key (就是隨機返回一個存在的key),可以隨機取出一個值,然后刪除該值,可能非常有用

rename 
#重命名key  

rename set2 set200 
#將key set2重命名為set200

type
#返回值的類型 
type set2 
#(返回值none表示空,set是集合 ,zset有序集合)


二、服務器的相關命令
ping :測試連接是否存活
echo : 在命令行打印一些內容
select : 選擇數據庫。Redis的數據庫編碼從0到15, select 1
quit : 退出連接 ,或者用exit命令
dbsize : 返回當前數據庫中key的數目
info : 獲取服務器的信息或統計
config get : 實時傳儲收到的請求 config get * (可以返回相關配置的參數值)
--------------------
flushdb : 刪除當前選擇數據庫中的所有key
dbsize (顯示當前選擇數據庫中key的數量)
flushdb
dbsize (結果為0)
-------------------
flushall : 刪除所有數據庫中的所有key


#手動持久化redis數據

SAVE 命令執行一個同步保存操作,將當前 Redis 實例的所有數據快照(snapshot)以 RDB 文件的形式保存到硬盤。 
一般來說,在生產環境很少執行 SAVE 操作,因為它會阻塞所有客戶端,保存數據庫的任務通常由 BGSAVE 命令異步地執行。然而,如果負責保存數據的后台子進程不幸出現問題時, SAVE 可以作為保存數據的最后手段來使用。

保存成功時返回 OK 。
redis> SAVE
OK

在后台異步(Asynchronously)保存當前數據庫的數據到磁盤。
BGSAVE 命令執行之后立即返回 OK ,然后 Redis fork 出一個新子進程,原來的 Redis 進程(父進程)繼續處理客戶端請求,而子進程則負責將數據保存到磁盤,然后退出。
客戶端可以通過 LASTSAVE 命令查看相關信息,判斷 BGSAVE 命令是否執行成功。
redis> BGSAVE
Background saving started

1.基本用法
SET connections 10
GET connections => 10
DEL connections
2 特殊命令(INCR防止多client讀寫沖突)
INCR connections => 11
INCR connections => 12
INCR connections => 13
3 redis存儲list數據
RPUSH puts the new value at the end of the list.
RPUSH friends "Alice"
RPUSH friends "Bob"
LPUSH puts the new value at the start of the list.
LPUSH friends "Sam"

LRANGE gives a subset of the list. It takes the index of the first element you want to retrieve as its first parameter and the index of the last element you want    to retrieve as its second parameter. A value of -1 for the second parameter means to retrieve elements until the end of the list.
LRANGE friends 0 -1 => 1) "Sam", 2) "Alice", 3) "Bob"
LRANGE friends 0 1 => 1) "Sam", 2) "Alice"
LRANGE friends 1 2 => 1) "Alice", 2) "Bob"
LLEN friends => 3(獲取list長度)
LPOP friends => "Sam" (刪除第list第一個參數)
RPOP friends => "Bob"(刪除第list最后一個參數)

RPUSH redis:log 1
#在list尾部追加一個value
 
LRANGE redis:log 0 0
#取出list的第一個value
 
LPOP redis:log
#刪除list的第一個value
 
LRANGE redis:log 0 -1
#顯示所有list value

/opt/logstash/bin/logstash agent -f /etc/logstash2/conf.d -l /var/log/logstash2/logstash.log &

##以上是手動操作redis消息隊列方法
 
redis set ( each element may only appear once)
redis set原來沒有sort,后來新增帶score的set支持ZRANGE
ZADD hackers 1953 "Richard Stallman"
5 redis hash ( perfect data type to represent objects)
HSET user:1000 name "John Smith"
HSET user:1000 email "john.smith@example.com"
HSET user:1000 password "s3cret"
HMSET user:1001 name "Mary Jones" password "hidden" email "mjones@example.com"

HGETALL user:1000
HGET user:1001 name => "Mary Jones"
數值類型原子操作
HSET user:1000 visits 10
HINCRBY user:1000 visits 1 => 11
HINCRBY user:1000 visits 10 => 21
HDEL user:1000 visits
HINCRBY user:1000 visits 1 => 1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM