# 使用者端工具redis-cli登入
redis-cli #預設127.0.0.1 6379
redis-cli -h ip
redis-cli -h ip -p port
redis-cli -h ip -p port -a password
redis的認證
>auth redispwd #登入redis後做認證
# redis-cli -a redispwd #登入+認證
字串
列表、集合
hash雜湊、釋出和訂閱
>set name aaa #增加key並賦值
>keys * #顯示所有的key
>get name #獲取key的值
>set name bbb #重新給key賦值
>del name #刪除key
大小寫問題
命令不區分大小寫: >GET name
key區分大小寫: >get Name
>set name ccc
>set Name xxx
>get name
>GET name
>get name
>get Name
非互動式操作Redis
redis-cli -a redispwd set name abc888
redis-cli -a redispwd get name
redis-cli -a redispwd del name
使用Shell批次寫入資料並獲取
for i in $(seq -w 10);do redis-cli -a redispwd set name${i} test${i}; redis-cli -a redispwd get name${i}; done 2>/dev/null
1.Redis列表
列表特點:
列表是有順序的
可寫入重複的資料
rpush右新增
如:['s1','s2','s3',...]
>rpush names s1 #依次在列表右側逐步新增資料,起初列表可以為空
>rpush names s2
>rpush names s3
>rpush names s4
>rpush names s1 #列表中新增一個重複的資料
>lrange names 0 -1 #將列表的值全部讀取檢視,注意:最前面是L的小寫,大小寫都可以
>LLEN names #列出列表的長度
Redis列表的讀取說明
0代表第一個值,1代表第二個值等,2代表第三個值,...
-1代表最後一個值,-2代表倒二個值等
>lrange names 0 2 #讀取第1到第3個列表值
>lrange names 0 -2 #讀取第1到倒數第2個列表值
列表左新增
如:['...','b3','b2','b1']
>lpush names2 b1 #依次在列表左側逐步新增資料,起初列表可以為空,注意:最前面是L的小寫,大小寫都可以
>lpush names2 b2
>lpush names2 b3
>lpush names2 b4
>push names2 b1 #列表中新增一個重複的資料
>lrange names2 0 -1 #將列表的值全部讀取檢視,注意:最前面是L的小寫,大小寫都可以
>lrange names2 0 1 #讀取第一個到第二個的值
Redis列表元素的刪除
移除列表中的其中一個值,如s1: >LREM names 1 s1 #1是代表移除一個元素,因為列表中元素是可以重複的,需要指定移除幾個元素,1,2...
移除列表中所有重複的值,如s1: >LREM names2 0 b1 #0是代表移除所有個指定的元素
列表彈出元素
>lpop 列表名 #左彈出 #注意是L的小寫
>rpop 列表名 #右彈出
2.Redis集合
集合特點:
無順序的
不重複的
Redis集合的操作
>sadd jh j1 #建立集合並新增元素,集合事先可以沒有元素
>sadd jh j2
>sadd jh j3
>sadd jh j4
>sadd jh j1 #集合中新增一個重複的元素,會新增失敗,因為集合不允許元素重複
>SMEMBERS jh #列出集合中的所有元素
Redis集合的刪除
>srem jh j1 #刪除集合中的元素j1
>spop jh #集合隨機彈出一個元素
判斷元素是否在集合裡
SISMEMBER jh j1
0代表不在,1代表在
1.Hash雜湊型別資料操作
Hash寫入
>hset haxi name ha #建立一個hash名字haxi,在名字裡面插入值(值都是以k-v形式的,可以多插入幾對值)
>hset haxi location bj
>hset haxi age 18
>hset haxi sex man
hash獲取
獲取全部:>HGETALL haxi #獲取hash名字裡的所有對兒key的值
獲取單個:>HGET haxi name #獲取hash名字裡的單個key的值
Hash刪除
>HDEL haxi age #刪除hash名字的單個key
>DEL haxi #刪除整個hash
Hash批次新增
>hmset haxi name hx666 age 20 location bj sex boy
2).Redis的釋出訂閱
>subscribe fabu #訂閱一個頻道,可以開多個視窗都訂閱這個頻道
>publish fabu "name shi, age 20,sex boy" #另外開一個視窗,往這個訂閱頻道里傳送資料,這樣訂閱頻道的視窗都能收到該資料