一、redis系列之基礎知識與centos下環境搭建
1. Redis 與其他 key - value 緩存產品有以下三個特點:
- Redis支持數據的持久化,可以將內存中的數據保持在磁盤中,重啟的時候可以再次加載進行使用。
- Redis不僅僅支持簡單的key-value類型的數據,同時還提供list,set,zset,hash等數據結構的存儲。
- Redis支持數據的備份,即master-slave模式的數據備份。
2. Redis的所有操作都是原子性的,同時Redis還支持對幾個操作全並後的原子性執行。
3.Redis支持五種數據類型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)
4. CAP理論就是說在分布式存儲系統中,最多只能實現上面的亮點,而由於當前的網絡硬件肯定會出現延遲丟包等問題,所以分區容忍性是我們必須要實現的。
C:強一致性:在分布式系統中的所有數據備份,在同一時刻是否同樣的值。
A:高可用性:在集群中一部分節點故障後,集群整體是否還能響應客戶端的讀寫請求。
P:分布式容忍性:以實際效果而言,分區相當於對通信的時限要求。系統如果不能在時限內達成數據一致性,就意味著發生了分區的情況,必須就當前操作在C和A之間做出選擇。
分布式架構的時候必須做出取舍,以上三者只能同時實現兩者。
CA:傳統Oracle數據庫
AP:大多數網站架構的選擇
CP:redis、Mongdb
5. BASE就是為了解決關系數據庫強一致性引起的問題而引起的可用性降低而提出的解決方案。
BASE其實就是下面三個術語的縮寫:
基本可用(Basically Available)
軟狀態(Soft stable)
最終一致(Eventually consistent)
BASE的思想是通過讓系統放松對某一時刻數據一致性的要求來換取系統整體伸縮性和性能上的改觀。為什麽這麽說呢,原因就在於大型系統往往由於地域分布和極高性能的要求,不可能采用分布式事務來完成這些指標,要想獲得這些指標,我們必須用另外一種,這裏的BASE就是解決這個問題的辦法。
6. reids:REmote DIctionary Server(遠程字典服務器)
7. centos下安裝reids:
- 下載:wget wget http://download.redis.io/releases/redis-5.0.0.tar.gz
- 解壓
- 然後復制到到/opt目錄下
- 進入/opt/redis-5.0.0
- 運行:make
若是出現以下錯誤,則則說明未安裝gcc,使用命令安裝gcc:yum install gcc
安裝好後繼續執行make,若出現如下提示,則將make改為make MALLOC=libc,推測是因為編譯庫的問題。
- 安裝編譯後的文件:make install,redis可執行文件將被復制到/usr/local/bin/,但沒有配置,手動復制配置:cp redis.conf /myredis 目錄中(需要先新建myredis目錄)
- 更改redis.conf文件中daemonize為yes 後臺啟動
9.啟動redis:
redis-server /myredis/redis.conf
redis-cli -p -6379
10. 在centos中查看redis有沒有在後臺運行:ps -ef|grep redis
11. 關閉redis服務:
SHUTDOWN
然後exit返回linux命令行
12. redis系統自帶16個數據庫,切換數據庫用角標:0-15
13. 切換數據庫:select + 角標
例:切換到7號數據庫:select 6
14. 查看當前數據庫所有數據:keys *。相當於關系型數據庫的select * 。
15. 查看當前數據庫數據量:DBSIZE
16. 清空當前數據庫:FLUSHDB
清空所有數據庫:FLUSHALL
17.redis的五大數據類型:
- String(字符串)
- Hash(哈希,類似於Java中的Map)
- List(列表)
- Set(集合)
- Zset(sorted set:有序集合)
18. string是最基本的類型,可以理解成與Memcached一模一樣的類型,一個key對應一個value。
string類型是一個二進制安全類型,意思是redis的string可以包含任何數據,比如jpg圖片或者序列話的對象
string類型是redis最基本的數據類型,一個redis中字符串value最多可以是512M。
19. redis中Hash(哈希)是一個鍵值對集合。
redis中hash是string類型的field和value的映射表,hash特別適合與存儲對象。
20. list(列表):redis列表是簡單的字符串列表,按照插入順序排序。可以添加一個元素在列表的頭部(左邊)或者尾部(右邊)。它的底層實際是一個鏈表。
21. set(集合):string類型的無序集合不允許元素重復,,通過hashTable實現的。
22. zset(有序集合):zset和set一樣也是string類型元素集合,都不允許元素重復,不懂的是zset每個元素都會關聯一個都變了類型的分數,扔地上真是通過分數來為集合中的每個成員進行從小到大的排序,zset成員中每一個元素都是唯一的,但是分數(score)是可重復的。
一、redis系列之基礎知識與centos下環境搭建