1.redis簡介:
1.1Redis 是一個開源(BSD許可)的肛搬,內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲系統(tǒng),它可以用作數(shù)據(jù)庫百姓、緩存和消息中間件臀玄。 它支持多種類型的數(shù)據(jù)結(jié)構(gòu)瓢阴,如 [字符串(strings)], [散列(hashes)]健无, [列表(lists)]荣恐, [集合(sets)], [有序集合(sorted sets)] 與范圍查詢累贤, [bitmaps]叠穆, [hyperloglogs]和 [地理空間(geospatial)] 索引半徑查詢。 Redis 內(nèi)置了 [復(fù)制(replication)]臼膏,[LUA腳本(Lua scripting)]硼被, [LRU驅(qū)動事件(LRU eviction)],[事務(wù)(transactions)]和不同級別的 [磁盤持久化(persistence)]渗磅, 并通過 [Redis哨兵(Sentinel)]和自動 [分區(qū)(Cluster)]提供高可用性(high availability)嚷硫。
2.redis特點:
2.1.Redis支持數(shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中始鱼,重啟的時候可以再次加載進行使用仔掸。
2.2.Redis不僅僅支持簡單的key-value類型的數(shù)據(jù),同時還提供list医清,set起暮,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲会烙。
2.3.Redis支持數(shù)據(jù)的備份负懦,即master-slave模式的數(shù)據(jù)備份。
3.優(yōu)勢
3.1性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 柏腻。
3.2豐富的數(shù)據(jù)類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數(shù)據(jù)類型操作密似。
3.3原子 – Redis的所有操作都是原子性的,意思就是要么成功執(zhí)行要么失敗完全不執(zhí)行葫盼。單個操作是原子性的。多個操作也支持事務(wù)村斟,即原子性贫导,通過MULTI和EXEC指令包起來抛猫。
3.4豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過期等等特性。
4.Redis 哈希(Hash)
Redis hash 是一個string類型的field和value的映射表孩灯,hash特別適合用于存儲對象闺金。
Redis 中每個 hash 可以存儲 232 - 1 鍵值對(40多億)。
官網(wǎng):http://redis.io/
官網(wǎng)中文版:http://www.redis.cn
菜鳥:http://www.runoob.com/redis/redis-tutorial.html
簡書:http://www.reibang.com/p/2f14bc570563
5.key-value[分布式存儲系統(tǒng)]查詢速度快峰档、存放數(shù)據(jù)量大败匹、支持高并發(fā),非常適合通過主鍵進行查詢讥巡,但不能進行復(fù)雜的條件查詢掀亩。
如果輔以Real-Time Search Engine(實時搜索引擎)進行復(fù)雜條件檢索、全文檢索欢顷,就可以替代并發(fā)性能較低的MySQL等關(guān)系型數(shù)據(jù)庫槽棍,達到高并發(fā)、高性能抬驴,節(jié)省幾十倍服務(wù)器數(shù) 量的目的炼七。以MemcacheDB、Tokyo Tyrant為代表的key-value分布式存儲布持,在上萬[并發(fā)連接]下豌拙,輕松地完成高速查詢。而MySQL题暖,在幾百個并發(fā)連接下按傅,就基本上崩潰了。
6.什么是hash?
散列表(也叫哈希表)芙委,是根據(jù)關(guān)鍵碼值直接進行訪問的數(shù)據(jù)結(jié)構(gòu)逞敷,也就是說,它通過把關(guān)鍵碼值映射到表中一個位置來訪問記錄灌侣,以加快查找的速度推捐。
這個映射函數(shù)叫做散列函數(shù),存放記錄的數(shù)組叫做散列表侧啼。
哈希表的關(guān)鍵:哈希函數(shù)的創(chuàng)建和沖突的解決.