非關係型資料庫 redis

2021-10-14 15:12:52 字數 4214 閱讀 6861

非關係型資料庫的統稱

不保證關係資料的acid(事務性)特性

關注效能(高效能)

不用sql語言

不用表儲存資料

開源;用 key-value儲存資料;資料儲存在記憶體中(啟動redis,會把硬碟的資料讀取到記憶體;寫資料時先把資料直接寫到記憶體,然後會定期把資料儲存到硬碟。所以高效能;)

服務端操作:

啟動服務:redis-server

停止服務: ctrl+c

客戶端操作:

啟動客戶端:redis-cli–raw

執行測試命令:ping

服務端 來乙個pong 說明連線成功

切換資料庫:

不能自己建立倉庫,資料庫沒有名稱,預設有16個,通過0-15來標識

select 6
預設連線上服務端後,進入的倉庫數字時0.

鍵值對:乙個鍵對應乙個資料

鍵名不能重複

鍵名型別是字串

值型別可以分為五種:

字串string

雜湊hash

鍊錶list

集合set

有序集合zset

注意:如果某個鍵值對儲存了某個資料型別的值,不能修改為其他的資料型別

字串型別

最基本型別

最大能儲存512mb資料

是二進位制安全的,可以儲存任何資料,比如數字,等

1.增加,修改

(如果設定的鍵不存在就是增加,存在就是修改)

set key value 

set 'user1' 'wang'

設定過期時間(時間一到,鍵值對就過期了)

setex key seconds(秒數) value
2.獲取單個鍵的值(查詢)

get key

get 'user1'

不存在,返回nil

3.設定多個鍵值對

mset key1  value1  key2  value2  ....
4.追加值(在原有的資料上新增值)

注意:對於不存在的鍵,相當於新建乙個鍵值對。

5.獲取多個鍵的值

mget key1,key2...
1.查詢鍵,引數支援正則表達:

keys 表示式

keys * // 檢視當前倉庫的所有鍵

keys '*a*' // 檢視包含a的鍵

2.判斷鍵是否存在,如果存在返回1,不存在返回0

exists 鍵
3.檢視鍵對應的value的型別(5種型別之一,不存在為null)

type 鍵
4.刪除鍵(對應的值就刪掉了)

del 鍵1, 鍵2 ....
5.設定過期時間,以秒為單位

exoire   鍵   時間
6.檢視某個鍵的有效時間(不存在為-2,存在且永久有效為-1,有時間的就返回使勁啊)

ttl 鍵
1.用於儲存鍵值對集合

2.值的型別為string

3.鍵可以理解為屬性,乙個屬性對應乙個值

(鍵裡存了值,值裡又存了乙個又乙個的鍵值對)

1.增加,修改

設定單個屬性

hset 鍵  屬性 值
設定多個屬性

hmset 鍵 屬性1  值1  屬性2 值2
2.獲取

獲取鍵所有屬性和所有值

hgetall '鍵'
獲取指定鍵所有屬性

hkeys 鍵
獲取乙個屬性的值

hget  鍵  屬性
獲取多個屬性

hmget 鍵 屬性1 屬性2....
獲取所有屬性的值

hvals 鍵
3.刪除

刪除整個hash鍵及值,del 命令

del  鍵
刪除某幾個屬性,屬性對應的值會被一起刪除

hdel  鍵  屬性1  屬性2 ...
鍊錶中存的資料型別為string

按照新增的順序排序,順序是從左向右(有序)

list是雙向鍊錶

可以放重複的資料r

1.增加

從左邊插入

lpush 鍵  值1   值2  ....
從右側插入(注意順序)

rlpush 鍵  值1   值2  ....
在指定的元素前或後插入新元素

linsert   鍵  before/after   現有元素
2.獲取

返回鍊錶中指定範圍內的元素

lrange    鍵    起始位置    結束位置
索引從左側開始,下標從0開始 ; 索引可以為負數,表示從尾部開始計數,如:-1代表最後乙個元素

3.修改

根據索引位置來修改

lset  key  index  value
4.刪除

將列表中前count次出現的值為value 的元素移除

count>0 從頭往尾刪除

count<0 從尾往頭刪除

count=0 全部刪除

lrem   鍵   count  值
del 刪除全部

無序集合

元素為string型別

元素具有唯一性,不重複

注意:對於集合,沒有修改操作

1.增加

新增元素

sadd  鍵 值1  值2 ....
2.獲取

smembers  鍵
3.刪除

del 還是可以全部刪除

刪除指定元素

srem  鍵  值
有序集合

元素為string型別

元素具有唯一性,不重複

每個元素都會關聯乙個分數,分數可以為負數,通過分數將元素從小到大排序

注意:沒有修改操作

1.增加(注意:分數在前 值在後)

zadd  鍵  分數1 值1  分數2  值2....
注意:如果增加的值已經存在,zadd就是修改那個值的分數,重新排序。多個值有相同的分數,那麼會按照字典順序排序。

2.獲取

1.規則與list相同

zrange 鍵   起始位置  結束位置
2.返回score值在min和max之間的元素

zrangebyscore  鍵 min   max
3.返回成員member的score值

zscore  鍵   值(member)
3.刪除

1.刪除指定的元素

zrem  鍵 值1  值2 ....
2.刪除分數在指定範圍的元素

zremrangebyscore   key   min  max

redis非關係型資料庫

概述 redis是一種nosql資料庫,他的資料是儲存在記憶體中,同時redis可以定時把記憶體資料同步到磁碟,即可以將資料持久化,並且他比memcached支援更多的資料結構 string,list列表 佇列和棧 set 集合 sorted set 有序集合 hash hash表 相關參考文件 r...

Redis非關係型資料庫

一 redis的事務管理 redis的事務管理是基於樂觀鎖實現的,主要是為了保證事務的一致性 一旦開啟事務後,redis的所有命令都會進入到乙個queue,只有commit,才會依次執行佇列中的命令 事務必須在乙個連線 connection 中執行,通常spring中會使用sessioncallba...

REDIS非關係型資料庫

redis資料以 key 和value進行儲存 非關係行資料庫 1.用於記憶體中快速讀寫和快取資料value value資料型別 1.string 2.hash 相當於hashmap,裡面可以繼續存放key 和value 3.list 可以有重複元素 4.set 不可以重複元素 5.sortedse...