Redis是一個開源的,先進的 key-value 存儲可用於構建高性能,可擴展的 Web 應用程序的解決方案。
Redis官方網網站是:http://www.redis.io/,如下:
-
Redis是完全在內存中保存數據的數據庫,使用磁盤只是為了持久性目的;
-
Redis相比許多鍵值數據存儲系統有相對豐富的數據類型;
-
Redis可以將數據復制到任意數量的從服務器中;
Redis優點
-
異常快速 : Redis是非常快的,每秒可以執行大約110000設置操作,81000個/每秒的讀取操作。
-
支持豐富的數據類型 : Redis支持最大多數開發人員已經知道如列表,集合,可排序集合,哈希等數據類型。
這使得在應用中很容易解決的各種問題,因為我們知道哪些問題處理使用哪種數據類型更好解決。 -
操作都是原子的 : 所有 Redis 的操作都是原子,從而確保當兩個客戶同時訪問 Redis 服務器得到的是更新后的值(最新值)。
-
MultiUtility工具:Redis是一個多功能實用工具,可以在很多如:緩存,消息傳遞隊列中使用(Redis原生支持發布/訂閱),在應用程序中,如:Web應用程序會話,網站頁面點擊數等任何短暫的數據;
要在windows中安裝redis:
- 在官網中下載redis壓縮包
- 執行cmd命令找到redis的存放目錄,啟動服務器端,如圖:
然后再客戶端也可以直接通過cmd命令連接,如圖:
該圖是連接本地redis並且向其中set類似於map集合《“myKey”,“test”》。然后通過get方法獲取。
上面做了redis的介紹以及安裝啟動服務器以及連接之后,接下來主要講解一下在Java中如何使用,這也是現在越來越流行的一項技術:
- 首先在java中使用Redis,需要引入Redis驅動,就是jedis-2.1.0.jar,而這個jar包又依賴於commons-pool-1.6.jar以及tomcat-redis-session-manager-1.2-tomcat-7.jar,所以我們至少需要這個三個jar包。
- 第二步便是上面說的啟動本地redis服務器。
- 然后在Java中通過驅動連接本地redis,如下:
Jedis jedis = new Jedis("localhost");
- 同時為了測試連接成功可以向上圖命令中那樣插入keyvlaue值,如: jedis.set("myKey", "成功");然后控制台輸出獲取值:
System.out.println("Redis key value :"+jedis.get("myKey"));
到這簡單redis在Java中就可以使用了,如需了解更多功能,可查看中文apihttp://www.360doc.com/content/15/0328/12/5054188_458684113.shtml
ps:redis存在的好處就在於無需頻繁的訪問數據庫,當一些數據不會發生變化時可以直接添加到redis中,比如聊天一些歷史記錄等,類似於緩存,這樣大大的提高了性能,筆者建議在使用redis最好結合着數據庫一起使用。下面復制一段代碼是筆者寫的一段結合redis和數據庫登陸的小測試功能中的一段代碼:
int user_id = 2;//用戶id String user_name;//用戶名 if(jedis.hexists("user"+user_id, "user_name")){//判斷jedis中是否存在"user"+user_id哈希表並且value值為user_name user_name =jedis.hget("user"+user_id, "user_name");//如果存在直接獲取然后登陸 System.out.println("歡迎來到Redis登陸: "+user_name); }else{//如果不存在,則需要查詢數據庫判斷用戶名密碼是否正確,如果存在則登陸,並且將其信息保存至redis String sql = "select user_name from user_t where id = "+user_id+""; try { ResultSet rs = conn.createStatement().executeQuery(sql); if(rs.next()){ jedis.hset("user"+user_id, "user_name", rs.getString("user_name"));//保存至redis中 System.out.println("歡迎來到MySql登陸: "+rs.getString("user_name")); }else{ System.out.println("歡迎 注冊"); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }
到這里一個算是完整的redis簡單入門就介紹完了。歡迎互相學習。