redis的操作為何是原子性的 redis十大基礎(chǔ)知識(shí)?
redis十大基礎(chǔ)知識(shí)?數(shù)據(jù)庫是一個(gè)開源的Key-Value存儲(chǔ),但又不僅僅是Key-Value存儲(chǔ),用官方平臺(tái)上的話來說,linux是一個(gè)數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),可用作數(shù)據(jù)庫、緩存和分布式架構(gòu)。linux具有
redis十大基礎(chǔ)知識(shí)?
數(shù)據(jù)庫是一個(gè)開源的Key-Value存儲(chǔ),但又不僅僅是Key-Value存儲(chǔ),用官方平臺(tái)上的話來說,linux是一個(gè)數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),可用作數(shù)據(jù)庫、緩存和分布式架構(gòu)。linux具有如下特點(diǎn):
速度快
豐富的數(shù)據(jù)結(jié)構(gòu),除String之外,還有List、Hash、Set、Sorted Set
單線程,避免了線程切換和鎖的性能消耗
原子操作
可持久化(RDB與AOF)
發(fā)布/訂閱
支持perl腳本
分布式鎖
事務(wù)
redis setex是原子操作嗎?
是的
Setex是一個(gè)原子操作
設(shè)置值,設(shè)置過期時(shí)間兩個(gè)動(dòng)作,會(huì)在同一時(shí)間完成
在sql緩存中,非常實(shí)用
redis庫包含哪些文件?
數(shù)據(jù)庫是一個(gè)key-value操作系統(tǒng)。
和Memcached類似,它支持存儲(chǔ)的value類型相對(duì)更多,包括string(字符串)、list(鏈表)、set(集合)和zset(有序集合)。
這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎(chǔ)上,linux支持各種不同的排序。
與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是php會(huì)周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實(shí)現(xiàn)了master-slave(主從)同步。
oracle是一個(gè)高性能的key-value數(shù)據(jù)庫。mysql的出現(xiàn),很大程度補(bǔ)償了memcached這類keyvalue存儲(chǔ)的不足,在部分場合可以對(duì)關(guān)系數(shù)據(jù)庫起到很好的補(bǔ)充作用。它提供了css,css,Erlang,PHP客戶端,使用很方便
php數(shù)據(jù)結(jié)構(gòu)
linux目前提供四種數(shù)據(jù)類型:string,list,set及zset(sortedset)。
redis怎么使用,有什么好處?
數(shù)據(jù)庫是一個(gè)開源的Key-Value存儲(chǔ),但又不僅僅是Key-Value存儲(chǔ),用官網(wǎng)平臺(tái)上的話來說,php是一個(gè)數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),可用作數(shù)據(jù)庫、緩存和kafka。oracle具有如下特點(diǎn):
速度快
豐富的數(shù)據(jù)結(jié)構(gòu),除String之外,還有List、Hash、Set、Sorted Set
單線程,避免了線程切換和鎖的性能消耗
原子操作
可持久化(RDB與AOF)
發(fā)布/訂閱
支持python腳本
分布式鎖
事務(wù)
主從復(fù)制與高可用(Redis Sentinel)
集群(3.0版本以上)
二、python數(shù)據(jù)結(jié)構(gòu)
1、String
這是最簡單的linux類型。
2、List
數(shù)據(jù)庫的List是基于雙向鏈表實(shí)現(xiàn)的,可以支持反向查找和遍歷。
常用案例:聊天系統(tǒng)、互聯(lián)網(wǎng)中獲取用戶最新發(fā)表的帖子、簡單的消息隊(duì)列、新聞的分頁列表、朋友圈的評(píng)論系統(tǒng)。
3、Hash
Hash是一個(gè)String類型的field和value之間的映射表,主要用來存儲(chǔ)對(duì)象,可以避免序列化的開銷和并發(fā)修改控制的問題。
4、Set
Set也是一個(gè)列表,不過它的特殊之處在于它是可以自動(dòng)排重的:當(dāng)需要存儲(chǔ)一個(gè)列表數(shù)據(jù),而又不希望出現(xiàn)重復(fù)的時(shí)候,Set是一個(gè)很好的選擇(比如dw的集合)。并且Set提供了判斷某個(gè)成員是否在一個(gè)Set集合內(nèi)的接口,這也是List所沒有的。
5、SortedSet
SortedSet和Set的使用場景類似,區(qū)別是Sorted Set會(huì)根據(jù)提供的score參數(shù)來進(jìn)行自動(dòng)排序。當(dāng)你需要一個(gè)有序的并且不重復(fù)的集合列表,那么就可以選擇SortedSet數(shù)據(jù)結(jié)構(gòu)。常用案例:游戲中的排行榜。