天天看點

redis 學習使用(1)

redis 首先需要了解 五種資料結構 和 基礎的指令

redis中鍵的基本操作 本來想放在最後 但有助于後面的學習

每種資料結構都有它們獨特的指令 而操作它們的指令卻是相同的 如

del key

當key存在時删除它

exists key

檢查key是否存在

type key

傳回key的資料類型

文法:

指令 鍵名

假如key存在時,類型為String 執行指令

set key abc

key的值變成abc

執行指令

hmset key name 1

由于資料結構不同,則會出錯

是以需要使用

del key

先删除,在執行上面的指令

String 字元串

基本類型 是二進制安全的(即保證檔案不會因為某些操作而遭到損壞)

可以存放各種資料 如圖檔 序列化對象 最大可以存儲512M的資料

一個key對應一個值

String結構
key => value
           

存取指令

取:

set 鍵的名字 值

存:

get 鍵的名字

redis 學習使用(1)

輸入的時候亂碼了 這個問題有待解決 并不影響使用

redis 學習使用(1)

如果是這樣的話,需要在啟動用戶端的時候 加上 --raw

redis-cli --raw

redis 學習使用(1)

經過測試,發現不加符号和加單引号和雙引号,沒有差別(暫不确定)

Hash 哈希

簡單來說是 一個key 對應多個鍵值對 相比String 相當于 把值 替換成了鍵值對

觀察了一下,通過對比String的指令,發現了指令命名的規律 Hash 的指令前都帶上了h(即取Hash的H) 比如

取:

hget 鍵的名字 鍵的名字

存:

hset 鍵的名字 鍵的名字 值

看到這裡是不是很懵 怎麼有兩個鍵的名字 第一個是hash的鍵 第二個是hash存儲的鍵值對的鍵

Hash結構
key(這裡是第一個鍵名) => [
		key(這裡是第二個鍵名) => value,
		key => value
]
           

避免混淆以後把hash裡面的鍵名叫做(field)字段

還有操作多個的指令 字首多為hm

取:

hmget 鍵的名字 字段1 字段2

存:

hmset 鍵的名字 字段1 值1 字段2 值2

還有一些常用的指令 如

hgetall key

擷取指定key的所有field(字段)和值

hexists key field

檢視key中的字段是否存在

hlen key

擷取key中字段的數量

List(清單)

這個相比于上個簡單一些 相比 String 相當于 一個值替換成了多個值

按照插入順序排序

List結構
	key=>[
		value,
		value,
		value
	]
           

發現除了前兩個後面的的指令好像都找不到相似的地方了,不過開頭的字首大多數還是根據首字母來的

rpush 鍵名 值1 值2 ....

向清單添加值,添加到最後

lrange 鍵名 開始的索引 結束的索引

範圍取值 索引從0開始

llen 鍵名

獲得清單的長度

lindex 鍵名 索引

根據索引取到對應的值

linsert 鍵名 before(之前)|after(之後) 值1 值2

将值2插入值1的之前或之後

lrem 鍵名 count value

當count為正數時,從表頭開始移除count個值為value的元素

當count為負數時從表尾開始移除count個值為value的元素,count為0時 移除所有值為value的元素

Set(集合)

String類型的無序集合

Set的結構 與List有些類似 特點是 無序,值是唯一的

常用指令

sadd 鍵名 值1 值2 ...

向集合添加一個或多個成員(值)

smembers 鍵名

傳回集合中的所有成員(值)

sismember 鍵名 值

判斷值是否是集合中的成員(值)

scard 鍵名

傳回集合的成員數

sinter 鍵名 鍵名 ...

傳回多個集合中的交集(相同的值)

Zset(有序集合)

有序集合和集合一樣 也是String類型的集合 且不允許重複的元素

不同的是 每個元素都會關聯一個Double類型的辨別

辨別可以重複 redis會通過數字将集合元素從小到大排序

常用指令

zadd 鍵名 數字1 值1 數字2 值2 ....

向集合添加一個或多個元素,或更新已存在元素的辨別

zcard 鍵名

傳回成員數(長度)

zrem 鍵名 值1 值2 ....

從集合中移除一個或多個成員(值)

zrange 鍵名 開始索引 結束索引

根據索引取出成員 不包含辨別

zcount 鍵名 開始辨別 結束辨別

取出在辨別範圍中的成員數

zrangebyscore 鍵名 開始索引 結束索引 [withscores] [limit offset count]

根據索引區間得到成員 withscores 選項是否取得辨別 limit offset count 則和mysql 的 select * from table limit offset count 相似

如果想取得全部的成員 在不知道的最小和最大索引時 可以使用 -inf +inf

redis 學習使用(1)

如有錯誤 還望指出