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