一分鐘瞭解redis

redis介紹

redis是一個nosql數據庫,是完全開源免費的,是一個高性能的key-value數據庫。

一分鐘瞭解redis

非關係型數據庫和關係型數據庫

  • 關係型數據庫有mysql,oralce等,數據是存放在硬盤中的,每次對數據進行操作都是io操作,而io操作的性能相對來說是比較差的;
  • 非關係型數據庫有redis等,數據是存放在內存中的,如果redis一旦掛掉,數據可能會丟失,因此一般我們都會選擇持久化機制; redis內存大小是有一個閾值限制的, 一旦超出閾值大小,會有一個淘汰策略;
  • jvm內置緩存框架;

redis應用場景

  1. Token令牌生成;
  2. 短信驗證碼code;
  3. 查詢數據緩存 (減輕數據庫壓力);
  4. 實現計數器;(redis本身是一個單線程,可以保證原子性)
  5. 分佈式鎖;
  6. 延遲操作;(如果在一定時間範圍內沒有進行支付,關閉訂單 實現方式對key進行監聽)
  7. 分佈式消息中間件;(分佈/訂閱 市面上基本上沒有用到)

redis 環境安裝

  1. https://redis.io/ redis官網地址
一分鐘瞭解redis

官網下載redis

  1. 上傳redis包到linux服務器,並解壓tar -zxvf redis-5.0.6.tar.gz
  2. cd redis-5.0.6
  3. 編譯 make -j8
  4. make PREFIX=~/redis install

redis配置文件說明:

  1. 將redis設置為後臺啟動:daemonize yes
  2. 設置redis賬號密碼:requirepass 123456
一分鐘瞭解redis

./redis-cli -h ip -p port -a password

  1. 設置redis允許ip訪問:bind 0.0.0.0
  2. redis默認情況下分為16個庫:databases 16

redis線程模型

redis採用nio的io多路複用原則,也就是一個線程去維護多個redis客戶端連接,從而提高併發效率和保證線程安全問題;底層是採用linux的epoll技術避免空輪訓;

redis數據結構

string類型 hash類型 list類型 set類型 sort-set類型

string類型

一分鐘瞭解redis

string類型

一分鐘瞭解redis

redis客戶端

hash類型

一分鐘瞭解redis

hash類型

一分鐘瞭解redis

redis客戶端

list類型

一分鐘瞭解redis

list類型

一分鐘瞭解redis

redis客戶端

set類型

一分鐘瞭解redis

set類型

一分鐘瞭解redis

redis客戶端

redis中如何存放一個java對象

  1. 存放json對象: set key=user value={"id":"0001", "name":"zhangsan"}
    缺點:提取出的json對象需要轉,比較麻煩;
  2. 存放二進制:eg:ssl-sso框架底層是使用二進制進行存儲;


分享到:


相關文章: