每日英文:Html
width寬
font字體
color顏色
height高
target目標靶子
table表格
meta變換變化
cellpadding單元格內邊距
cellspacing單元格間距
Redis
1.NoSql
Nosql非關系型數(shù)據(jù)庫現(xiàn)在發(fā)展飛速,而傳統(tǒng)的關系型數(shù)據(jù)庫在應付web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的sns(Secure Network Server)類型的web2.0純動態(tài)網(wǎng)站已經顯得力不從心,暴露了很多難以克服的問題,如:
High performance對數(shù)據(jù)庫高并發(fā)讀寫的需求,數(shù)據(jù)庫并發(fā)負載非常高,應付每秒上萬次的sql查詢還勉強頂?shù)米〉珣渡先f次sql寫數(shù)據(jù)請求,硬盤io已無法承受,普通的bbs網(wǎng)站往往也存在對高并發(fā)寫請求的要求,如網(wǎng)站的實時統(tǒng)計在線用戶狀態(tài),記錄熱門帖子的點擊次數(shù),投票計數(shù)等,這屬于本網(wǎng)站的基本需求.
Huge Storage對海量數(shù)據(jù)的高效率存儲和訪問的需求.類似facebook,twitter,Friendfeed這樣的sns網(wǎng)站,每天用戶產生海量的用戶動態(tài),對于關系數(shù)據(jù)庫來說,在一張2.5億條記錄的表里進行sql查詢,效率是極其低下的,再如,大型web網(wǎng)站的用戶登錄系統(tǒng),如騰訊等動輒以億計的賬號,關系數(shù)據(jù)庫也很難應付.
High Scalability && HighAvailability對數(shù)據(jù)庫的高擴展性和高可用性的需求.在基于web的架構當中,數(shù)據(jù)庫是最難進行橫向擴展的,當一個應用系統(tǒng)的用戶量和訪問量與日俱增的時候,你的數(shù)據(jù)庫卻沒有辦法像web
server和app server那也簡單的通過添加更多的硬件和服務節(jié)點來擴展性能和負載能力,對于很多需要提供24小時不間斷服務的網(wǎng)站來說,對數(shù)據(jù)庫系統(tǒng)進行升級和擴展是非常痛苦的事情,往往需要停機維護和數(shù)據(jù)遷移.
NoSQL數(shù)據(jù)庫的產生就是為了解決大規(guī)模數(shù)據(jù)集合多重數(shù)據(jù)種類帶來的挑戰(zhàn)尤其是大數(shù)據(jù)應用難題,
NoSQL數(shù)據(jù)庫的四大分類如下:
1.鍵值(Key-Value)存儲數(shù)據(jù)庫
相關產品:Tokyo Cabinet/Tyrant,Redis,Voldemort,Berkeley DB
典型應用:內容緩存,主要用于處理大量數(shù)據(jù)的高訪問負載
數(shù)據(jù)模型:一系列鍵值對
優(yōu)勢:快速查詢
劣勢:存儲的數(shù)據(jù)確實結構化
2.列存儲數(shù)據(jù)庫
相關產品:Cassandra,HBase,Riak
典型應用:分布式的文件系統(tǒng)
數(shù)據(jù)模型:以列式存儲,將同一列數(shù)據(jù)存在一起
優(yōu)勢:查找速度快,可擴展性強,更容易進行分布式擴展
劣勢:功能相對局限.
3.文檔型數(shù)據(jù)庫
相關產品:CouchDB,
MongoDB
典型應用: Web應用(與key-value類似,value是結構化的)
數(shù)據(jù)模型:一系列鍵值對
優(yōu)勢:數(shù)據(jù)結構要求不嚴格
劣勢:查詢性能不高,而且缺乏統(tǒng)一的查詢語法
4.圖形數(shù)據(jù)庫
相關數(shù)據(jù)庫:Neo4J,InfoGrid,Infinite Graph
典型應用:社交網(wǎng)絡
數(shù)據(jù)模型:圖結構
優(yōu)勢:利用圖結構相關算法
劣勢:需要對整個圖做計算才能得出結果,不容易做分布式的集群方案
NoSQL特點:易擴展,大數(shù)據(jù)量,高性能,靈活的數(shù)據(jù)模型,高可用
Redis的應用場景
緩存(數(shù)據(jù)查詢,短鏈接,新聞內容,商品內容).(最多使用)
聊天室的在線好友列表
任務隊列(秒殺,搶購,12306)
應用排行榜
網(wǎng)站訪問統(tǒng)計
數(shù)據(jù)過期處理(可以精確到毫秒)
分布式集群架構中的session
Redis是用C語言開發(fā)的一個開源的高性能鍵值對(key-value)數(shù)據(jù)庫,它通過提供多種鍵值數(shù)據(jù)類型來適應不同場景下的存儲需求,目前為止Redis支持的鍵值數(shù)據(jù)類型如下:
1.字符串類型(String),
2.散列類型(哈希hash),
3.列表類型(list字符串列表),
4.集合類型(set字符串集合),
5.有序集合類型(sorted set有序字符串集合)
官方測試數(shù)據(jù):50個并發(fā)執(zhí)行100000個請求,讀的速度是110000次/s,寫的速度是81000次/s.數(shù)據(jù)僅供參考,根據(jù)服務器配置會有不同結果
關于key值定義需注意:
1.不要太長,最好不要超過1024個字節(jié),這不僅會消耗內存還會降低查詢效率
2.不要太短,太短會降低key的可讀性
3.在項目中,key最好有一個統(tǒng)一的命名規(guī)范
./bin/redis-service./redis.conf啟動配置
./bin/redis-cli連接客戶端
ping查看是否連接正常
String類型的KEY
set/get/delkey設置/獲取/刪除key
keys *查詢所有的key
incr keykey自增1當key不存在則創(chuàng)建并初始為0再自增1.但這里的key必須是可以轉化為整型的值
decrkeykey自減1.規(guī)則同上
incrby keyincrement為key = key+increment
decrby key denum為key=key-denum
append key value字符串拼接
Hash哈希類型的數(shù)據(jù)
Hset/hget /hdelkeyfieldvalue設置/獲取/刪除key的field的屬性的value值
delkey直接刪除key
hincrbykeyfileincrementkey的filed的值增加increment
hexists key field判斷指定的key中的filed是否存在
hlenkey獲取key所包含的field的數(shù)量
hkeyskey獲得所有的key
hvalskey獲取所有的value
Eclipse中連接Redis .
1.導入jar包:
2.開放端口: /sbin/iptables-I INPUT -p tcp --dport 6379 -j ACCEPT找到相應路徑
/etc/rc.d/init.d/iptables save找到相應路徑
3.代碼實現(xiàn)1:
Jedis
jedis = new Jedis (“IP地址”,6379);
jedis.set(“address”,”bejing”);
System.out.println(jedis.set(“address”));
jedis.close();
代碼實現(xiàn)2:連接池
GenericObjectPoolConfigpoolConfig = new GenericObjectPoolConfig();
poolConfig.setMaxTotal(50);
poolConfig.setIdle(10);
JedisPoolpool= new JedisPool(poolConfig,”IP地址”,6379);
jedis.set(“address”,”beijing”);
System.out.println(“address”);
pool.close();
jedis.close();
Linux補充
chmod十進制權限之和文件名更改指定文件的權限
eg:chmod777a.txt權限7:rwx