1. 程式人生 > >Redis五種資料型別簡單操作命令

Redis五種資料型別簡單操作命令

目前正在學習Redis,總覺得好記性不如爛筆頭,所以還是把課上學到得簡單得東西做一個筆記,這樣子便於以後學習。
首先安裝Redis。
由於官網上沒有Windows系統的Redis軟體,但是微軟一直在做這個Windows的Redis。下載地址:https://github.com/MSOpenTech/redis/releases
下載之後進行簡單的配置環境變數就可以用了。
首先將下載的檔案解壓,將解壓後的位置新增到環境變數裡,我的地址如下:D:\Software\Redis-x64-3.0.504
然後開啟我們的終端(cmd)
先啟動伺服器

redis-server

然後開啟第二個終端,執行以下的命令,就可以操作Redis了

redis-cli

進入到Redis之後,我們可以進行簡單的新增資料操作。

一 字串操作命令

(1)建立

set address xicheng

然後使用get address 就可以取出name欄位的資訊
(2)取出

get address

具體效果如下:
在這裡插入圖片描述

(3)建立多個欄位使用mset

mset map xicheng no 662 road xuejiananlu36

(4)查詢多條記錄使用mget

mget map no road

具體效果如下:
在這裡插入圖片描述
(5)查詢欄位的型別使用type

type map

這是由於Redis總共只有5種資料型別,分別為 字串(string)、雜湊表(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)
string包含double int float等
這是查詢出map的資料型別是string

(6)對數字的增加與減少
預設加一

incr no

自定義增加限度

incrby no 100

預設減一

decr no 

自定義減少限度

decrby no 100

具體效果如下:
在這裡插入圖片描述

二 雜湊(Hash)操作命令

(1)建立一個雜湊表

hmset teacher no 23 name "Miss Liu" age 18 sex "female" wage 6785.5

在這裡插入圖片描述
(2)獲取欄位的值

hmget teacher no sex name 或者 hget teacher no

在這裡插入圖片描述
(3)將某個field的值設定為vlaue

hset teacher no 662

在這裡插入圖片描述
這裡雖然提示 0 但是還是更改過來了的

(4) 獲取指定表的所有field和value

hgetall teacher 

在這裡插入圖片描述
(5)獲取表中的欄位數

hlen teacher

在這裡插入圖片描述
(6)獲取表中的所有欄位

hkeys teacher

在這裡插入圖片描述
(7)獲取表中的所有值

hvals teacher

在這裡插入圖片描述
(8)刪除一個或多個欄位

hdel teacher no
hdel teacher name female sex

在這裡插入圖片描述
(9)檢查某欄位是否存在

hexists teacher no
hexists teacher wage

在這裡插入圖片描述
(10 )給指定欄位新增增量

hincrby teacher no 456

在這裡插入圖片描述

(11)給指定浮點數字段增加

hincrbyfloat teacher wage 0.5

在這裡插入圖片描述
這裡可能會有點疑問,為什麼精度不一樣,我試了一些數字,發現結果為0.5 或者1.0的,則精度不會改變,其他則會改變浮點數的精度。

三 列表(List)操作命令

(1) 將一個或多個值插入到列表key的頭部

lpush list1 1 2 3 4 5 6 7 8 9

(2) 將一個或多個值插入到列表key的尾部

rpush list2 1 2 3 4 5 6 7 8 9

(3) 獲取列表key中指定區間內的元素,0表示第一個元素,-1表示最後一個元素

lrange list1 0 -1
lrange list2 0 -1

在這裡插入圖片描述

(4)獲取列表key的長度

llen list2

在這裡插入圖片描述
(5)移除並返回列表的頭元素

lpop list1
lpop list2

在這裡插入圖片描述
(6)移除並返回列表的尾元素

rpop list1
rpop list2

在這裡插入圖片描述
(7)獲取列表key中指定下標的元素,0表示第一個元素

lindex list2 4

在這裡插入圖片描述
(8)將列表key的指定下標元素的值設定為value

lset list2 4 662

在這裡插入圖片描述

(9)將某個值插入到指定值之前或之後

linsert list2 after 662 663
linsert list2 before 662 614

在這裡插入圖片描述

(9)根據count移除列表中與指定值相等的所有元素

lrem list3 2 18

在這裡插入圖片描述
(10)移除列表source尾部的元素,並將其新增到destination的頭部

RPOPLPUSH source destination
rpoplpush list1 list2

在這裡插入圖片描述

四 集合(set)操作命令

(1)向集合中新增一個或者多個元素,使用 sadd 欄位進行操作

sadd set1 1 2 3 2 5 6 8 20 36 8

(2)獲取集合中的元素數量

scard set1

(3)獲取集合的所有元素

smembers set1

效果如下:
在這裡插入圖片描述
(4)判斷集合是否包含指定元素

sismember set1 4
sismember set1 8

在這裡插入圖片描述
(5)刪除集合中的一個或多個元素

srem set1 1 2 3
srem set1 20

在這裡插入圖片描述
(6)從集合中隨機抽取n個元素

srandmember set1 3

在這裡插入圖片描述
(7)從集合中隨機移除一個元素

spop set1

在這裡插入圖片描述

以下的操作需要兩個集合及以上
(8)將集合B中的元素移動到集合A

smove set2 set1 662

在這裡插入圖片描述
(9)求集合的差集

sdiff set1 set2

在這裡插入圖片描述

(10)求集合的交集

sinter set1 set2

(11)求集合的並集

sunion set1 set2

在這裡插入圖片描述

(五)有序集合(Sorted Set)操作命令

(1)向集合中新增一個或多個元素及其分數

zadd zset1 662 A 614 B 20 C 19 D 18 E 17 F 16 G

(2)獲取集合中的元素數量

zcard zset1

(3)返回指定區間的元素,score從小到大

zrange zset1 0 -1

實驗結果如下:
在這裡插入圖片描述

(4)返回指定區間的元素,score從大到小

zrevrange zset1 0 -1

實驗結果如下:
在這裡插入圖片描述
(5)獲取score介於min和max之間的元素

zrangebyscore zset1 20 662

在這裡插入圖片描述
(6)刪除集合中的一個或多個元素

zrem zset1 A C

在這裡插入圖片描述
(7)獲取某個元素的排名,score從小到大

zrank zset1 20

(8)獲取某個元素的排名,score從大到小

zrevrank zset1 20

在這裡插入圖片描述
(9)計算分數在min和max之間的元素數

zcount zset1 16 614

(10)獲取某個元素的分數

zscore zset1 A

在這裡插入圖片描述
到這裡,redis的基本操作已經完結了,但是還是需要勤加練習,所謂好記性不如爛筆頭,學習愉快^^