以下是我做的一個(gè)redis的添加數(shù)據(jù)的測(cè)試?
首先先介紹一下什么是 Redis?
Redis 是完全開(kāi)源免費(fèi)的,遵守 BSD 協(xié)議,是一個(gè)高性能的 key-value 數(shù)據(jù)庫(kù)朵夏。
Redis 與其他 key - value 緩存產(chǎn)品有以下三個(gè)特點(diǎn):
(1)Redis 支持?jǐn)?shù)據(jù)的持久化良价,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤(pán)中,重啟的時(shí)候可以再次加載進(jìn)行使用搏色。
(2)Redis 不僅僅支持簡(jiǎn)單的 key-value 類(lèi)型的數(shù)據(jù)善茎,同時(shí)還提供 list,set频轿,zset垂涯,hash 等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)。
(3)Redis 支持?jǐn)?shù)據(jù)的備份航邢,即 master-slave 模式的數(shù)據(jù)備份耕赘。
Redis 優(yōu)勢(shì)
(1)性能極高 – Redis 能讀的速度是 110000 次/s,寫(xiě)的速度是 81000 次/s 。
(2)豐富的數(shù)據(jù)類(lèi)型 – Redis 支持二進(jìn)制案例的 Strings, Lists, Hashes, Sets 及Ordered Sets 數(shù)據(jù)類(lèi)型操作膳殷。
(3)原子 – Redis 的所有操作都是原子性的操骡,意思就是要么成功執(zhí)行要么失敗完全不執(zhí)行。單個(gè)操作是原子性的赚窃。多個(gè)操作也支持事務(wù)册招,即原子性,通過(guò) MULTI 和 EXEC指令包起來(lái)勒极。
(4)豐富的特性 – Redis 還支持 publish/subscribe, 通知, key 過(guò)期等等特性是掰。
Redis 與其他 key-value 存儲(chǔ)有什么不同?
(1)Redis 有著更為復(fù)雜的數(shù)據(jù)結(jié)構(gòu)并且提供對(duì)他們的原子性操作辱匿,這是一個(gè)不同于其他數(shù)據(jù)庫(kù)的進(jìn)化路徑键痛。Redis 的數(shù)據(jù)類(lèi)型都是基于基本數(shù)據(jù)結(jié)構(gòu)的同時(shí)對(duì)程序員透明炫彩,無(wú)需進(jìn)行額外的抽象。
(2)Redis 運(yùn)行在內(nèi)存中但是可以持久化到磁盤(pán)散休,所以在對(duì)不同數(shù)據(jù)集進(jìn)行高速讀寫(xiě)時(shí)需要權(quán)衡內(nèi)存媒楼,因?yàn)閿?shù)據(jù)量不能大于硬件內(nèi)存。在內(nèi)存數(shù)據(jù)庫(kù)方面的另一個(gè)優(yōu)點(diǎn)是戚丸,相比在磁盤(pán)上相同的復(fù)雜的數(shù)據(jù)結(jié)構(gòu)划址,在內(nèi)存中操作起來(lái)非常簡(jiǎn)單,這樣 Redis可以做很多內(nèi)部復(fù)雜性很強(qiáng)的事情限府。同時(shí)夺颤,在磁盤(pán)格式方面他們是緊湊的以追加的方式產(chǎn)生的,因?yàn)樗麄儾⒉恍枰M(jìn)行隨機(jī)訪(fǎng)問(wèn)胁勺。
下面就是我測(cè)試的時(shí)間還有類(lèi)型
(1)key系列化器StringRedisSerializer
value系列化器為JdkSerializationRedisSerializer
保存的數(shù)量為5w
耗費(fèi)的時(shí)間為29700
(2)key系列化器StringRedisSerializer
value系列化器為Jackson2JsonRedisSerializer
保存的數(shù)量為5w
耗費(fèi)的時(shí)間為29762
(3)hashkey系列化器StringRedisSerializer
hashvalue系列化器為StringRedisSerializer
保存的數(shù)量為5w
耗費(fèi)的時(shí)間為29891
其中最快的是String類(lèi)型的序列化也是最簡(jiǎn)單了默認(rèn)的序列化方式為JdkSerializationRedisSerializer