1.Redis簡介
Redis是一個開源的使用ANSI C語言編寫、支援網絡、可基于記憶體亦可持久化的日志型、Key-Value資料庫,并提供多種語言的API。
2.NoSQL簡介
NoSQL,泛指非關系型的資料庫。NoSQL資料庫的産生就是為了解決大規模資料集合多重資料種類帶來的挑戰,尤其是大資料應用難題。
3.NoSQL資料庫四大分類
①鍵值(key-value)存儲資料庫。這一類資料庫主要會使用到一個哈希表,這個表中有一個特定的鍵和一個指針指向特定的資料。例如Redis;
②列存儲資料庫。這部分資料庫通常是用來應對分布式存儲的海量資料。鍵仍然存在,但是它們的特點是指向了多個列。例如HBase;
③文檔型資料庫。該類型的資料模型是版本化的文檔,半結構化的文檔以特定的格式存儲,比如JSON。檔型資料庫可以看作是鍵值資料庫的更新版,允許之間嵌套鍵值。而且文檔型資料庫比鍵值資料庫的查詢效率更高。例如MongoDB;
④圖形(Graph)資料庫。它是使用靈活的圖形模型,并且能夠擴充到多個伺服器上。如Neo4J。
下表是關于各種資料庫類型的差別:

4.NoSQL資料庫适用範圍
①資料模型比較簡單;
②需要靈活性更強的IT系統;
③對資料庫性能要求較高;
④不需要高度的資料一緻性;
⑤對于給定key,比較容易映射複雜值的環境。
5.Redis性能
Redis讀的速度是110000次/s,寫的速度是81000次/s 。
6.Redis的資料結構
redis提供五種資料類型:string,hash,list,set及zset(sorted set)。
7.Redis存儲
存儲檔案格式
①全量資料:全量資料格式是把記憶體中的資料寫入磁盤,便于下次讀取檔案進行加載;
②增量請求:增量請求檔案是把記憶體中的資料序列化為操作請求,用于讀取檔案進行replay得到資料,序列化的操作包括SET、RPUSH、SADD、ZADD。
存儲分類
redis的存儲分為記憶體存儲、磁盤存儲和log檔案三部分,配置檔案中有三個參數對其進行配置。
8.Redis總結特點
①redis單個key存入512M記憶體大小;
②redis支援多種類型的資料結構;
③redis是單線程,原子性;
④redis可以持久化,因為使用了RDB和AOF機制;
⑤redis支援叢集,支援庫16個(0-15);
⑥redis可以做消息隊列,比如聊天室等。
9.Redis優缺點
優點:
①豐富的資料結構;
②高速讀寫,使用自己實作的分離器,代碼量短;
缺點:
①在持久化中,第一種方式為定時快照,每隔一段時間将整個資料庫寫到磁盤上,每次均是全部資料,代價很高;第二種方式為基于語句追加,追加的log可能過大,同時所有的操作均重新執行一遍,回複速度慢;
②耗記憶體,占用記憶體高。
10.Redis作者
redis 的作者,叫Salvatore Sanfilippo,GitHub網址為https://github.com/antirez。