2、Redis常用資料型別

2023-03-08 15:00:42

1.Redis-cli使用和認證登入

# 使用者端工具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     #登入+認證

2.Redis常用資料型別

字串
列表、集合
hash雜湊、釋出和訂閱

3.Redis字串操作

>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

4.Redis列表和集合的基本操作

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代表在

5.Redis雜湊和訂閱型別基礎操作

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"    #另外開一個視窗,往這個訂閱頻道里傳送資料,這樣訂閱頻道的視窗都能收到該資料