java 使用 Redis 資料庫
Redis 是NoSQL的一種(非關係型資料庫)
Redis 的安裝,連線(原始碼安裝、二進位制安裝/IP 和埠號)
Redis 儲存資料的結構(string list set hash zset)
Redis 的常用命令(get mget set mset incr decr incrby )
java 連線Redis
redis 儲存物件 byte[]方式
redis儲存物件 string[]方式
Jedis 連線池操作(jedispool )
jedis的管道操作 (jedispipe)
Redis 的yml 檔案中允許修改ip 埠號
Redis.conf中修改 AUTH的配置 要求使用 使用者名稱 密碼 驗證
Redis 持久化機制 -RDB :RDB是將支援當前資料的快照存成一個數據檔案的持久化機制。fork 出一個子程序,子程序中迴圈所有的資料,將資料寫入到二進位制檔案中
Redis事務:與mysql的不同,Redis的事務不具有原子性,該失敗還是失敗。
Redis哨兵:叢集中的每個節點都有一個哨兵,哨兵之間可以相互通訊,感知某個節點是否down機,如果master某個節點已經dwon機,就從剩下的節點中再選出一個作為master節點。
Redis主從架構:Redis的每個節點中都有一個從節點,當主節壞掉,就用從節點替換
Redis 的淘汰機制: 當記憶體不足時,有的key會被刪除,策略是有多種,包括 最近最少使用 或者是 隨機刪除
java連線Redis叢集:
rediscluster node = rediscluster()
node.add(ip,port)
node.add(ip,port)
node.add(ip,port)
node.add(ip,port)
Redis 快取問題: 客戶端先查詢redis快取,如果沒有資料,在查詢資料庫(同時將資料備份到redis)。如果redis中沒有,資料庫中也沒有,
id自增,將id的最大值放到Redis中
快取中的熱點資料,突然到期了,造成大量的請求訪問資料庫,造成宕機,
快取雪崩: 熱點資料的生存時間去掉或者將快取找那個資料的生存時間設定為一個隨機數,避免同時到期。
如果熱點資料都放在一個Redis節點上,Redis無法承受大量的請求,最終Redis宕機
1、擴充套件主從架構,搭建大量的從節點,緩解Redis 壓力。
2、在Tomcat中新增JVM 快取,在查Redis之前,先去查詢Tomcat快取