1. NoSQL&Redis介紹
NoSQL,Not Only SQL,是非關係型的數據庫。傳統的關係數據庫不能滿足超大規模和高併發的應用。
是以Key-Value的形式存儲,(例如JSON,XML),不一定遵循傳統數據庫的一些基本要求,比如SQL標準、ACID屬性(Atomicity/ Consistency/Isolation/Durability)、表結構等。主要有以下的特點:非關係型的、分步式的、開源的、水平可擴展的(指能夠連接多個軟硬件的特性)。
NoSQL適用場景:
1)、High performance - 對數據高併發讀寫
2)、Huge storage - 對海量數據的高效率存儲和訪問
3)、High scalability && HighAvailability - 對數據的高可擴展性和高可用性
開源的NoSQL數據庫:Redis, MongoDB, Cassandra…...
Redis的介紹
Redis是一個Key-Value存儲系統。它支持存儲的value類型有:string(字符串),list(鏈表), set(無序集合), zset(sorted set有序集合)和hash,也可以把redis看成一個數據結構服務器。這些數據類型都支持pust/pop、add/remove及取交集、並集和差集運算,Redis支持各種不同方式的排序。數據都是緩存在內存中的,它也可以週期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,並實現了master-slave(主從)同步。
Redis提供的API語言包括C、C++、C#、Java、JavaScript、Lua、Objective-C、Perl、PHP、Python、Ruby、Go、Tcl等。
使用Redis:新浪微博,200+ Server、400 port、4G data.
使用方式:與memcache相同
1. 應用程序直接訪問Redis數據庫;
2. 應用程序直接訪問Redis,只有當訪問Redis失敗時才訪問MySQL
應用場合:
1. 取最新N個數據的操作
2. 排行榜應用
3. 需要精確設定過期時間的應用
4. 計數器應用
5. Uniq操作,獲取某段時間所有數據排重值
6. 實時系統,反垃圾系統
7. Pub/Sub構建實時消息系統
8. 構建隊列系統
9. 緩存
10. 存儲微博關注關係
Redis有庫無表無字段無行列。MongoDB有庫有集合(對應於Mysql中的表)
2. Redis的安裝
官網:http://redis.io
步驟一:
下載安裝包:
wget http://redis.googlecode.com/files/redis-2.4.17.tar.gz
步驟二:
編譯源代碼:
tarzxvf redis-2.4.17.tar.gz
cdredis-2.4.17
make
cdsrc
makeinstall
注:make完成後,有產生可執行文件
redis-server:redis服務器的啓動程序
redis-cli:redis命令行工具,也可爲客戶端
redis-benchmark:redis性能測試工具(讀寫)
redis-stat:redis狀態檢測工具(狀態參數延遲)
步驟三:(非必須)
移動文件,便於管理
mkdir –p /usr/local/redis/bin
mkdir –p /usr/local/redis/etc
mv redis-2.4.17/redis.conf/usr/local/redis/etc
mvmkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/lcoal/redis/bin
步驟四:
啓動redis服務
/usr/local/redis/bin/redis-server(有警告,沒有加載配置文件)
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
Redis服務端的默認連接端口是6379
Redis默認不是後臺運行
步驟五:
客戶端連接
/usr/local/redis/bin/redis-cli
或者其他客戶端:如phpredis
$redis = new Redis();
$redis->connect(“127.0.0.1”, 6379);
步驟六:
停止Redis
/usr/local/redis/bin/redis-clishutdown
or
pkill redis-server
3. Redis的配置
daemonize 如果需要在後臺運行,把該項改爲yes
pidfile 配置多個pid的地址,默認在/var/run/redis.pid
bind 綁定ip,設置後只接受自該ip的請求
port 監聽端口,默認爲6379
timeout 設置客戶端連接時的超時時間,單位爲秒
loglevel 分爲4級,debug、verbose、notice、warning
logfile 配置log文件地址
databases 設置數據庫的個數,默認使用的數據庫爲0
save 設置redis進行數據庫鏡像的頻率,保存快照的頻率,第一個*表示多長時間, 第三個*表示執行多少次寫操作。在一定時間內執行一定數量的寫操作時,自動保存快照。可設置多個條件。
rdbcompression 在進行鏡像備份時,是否進行壓縮
Dbfilename 鏡像備份文件的文件名
Dir 數據庫鏡像備份的文件放置路徑
Slaveof 設置數據庫爲其他數據庫的從數據庫
Masterauth 主數據庫連接需要的密碼驗證
Requirepass 設置登錄時需要使用的密碼
Maxclients 限制同時連接的客戶數量
Maxmemory 設置redis能夠使用的最大內存
Appendonly 開啓append only模式
appendfsync 設置對appendonly.aof文件同步的頻率
vm-enabled 是否虛擬內存的支持
vm-swap-file 設置虛擬內存的交換文件路徑
vm-max-memory 設置redis使用的最大物理內存大小
vm-page-size 設置虛擬內存的頁大小
vm-pages 設置交換文件的總page數量
vm-max-threads 設置VMIO同時使用的線程數量
glueoutputbuf 把小的輸出緩存存放在一起
hash-max-zipmap-entries 設置hash的臨界值
activerehashing 重新hash
以上參考了很多互聯網資料,僅爲自己的學習筆記