Redis學習-redis概述

最近剛剛接觸了redis技術,對此有一些瞭解,這是簡單作一點總結。java

Redis簡介

首先,簡單瞭解一下NoSQL(Not only sql),不要錯誤的理解爲:沒有SQL,而是不單單是SQL。NoSQL工具也是一種簡易的數據庫,它主要是基於內存的數據庫,並提供必定的持久化功能。如今有不少這種技術如:memcachedb,redis,MongoDB等等。
Redis 是徹底開源免費的,遵照BSD協議,是一個高性能的key-value數據庫。
Redis的性能十分優越,能夠支持每秒十幾萬的讀/寫操做,其性能超數據庫,而且支持集羣、分佈式、主從同步等配置,還支持必定事務能力。
Redis 與其餘 key - value 緩存產品有如下三個特色:git

  • Redis支持數據的持久化,能夠將內存中的數據保存在磁盤中,重啓的時候能夠再次加載進行使用。
  • Redis不單單支持簡單的key-value類型的數據,同時還提供list,set,zset,hash等數據結構的存儲。
  • Redis支持數據的備份,即master-slave模式的數據備份。

redis的性能優越主要來自3個方面:github

  • 基於ANSI C語言編寫的,接近於彙編語言的機器語言,運行十分快速。
  • 基於內存的讀/寫,速度天然比數據庫的磁盤讀/寫要快。
  • 它的數據結構只有6種數據類型,數據結構比較簡單,所以規則較少,而數據庫則是範式,完整性、規範性須要考慮的規則較多,處理業務會比較複雜。

Redis在javaweb中的應用

通常,在javaweb中應用redis存在兩個場景,一個是緩存經常使用的數據;另外一個是在須要高速讀/寫的場合使用它快速讀/寫,好比一些須要進行商品搶購和搶紅包的場合。
在使用Redis存儲的時候,須要從3個方面進行考慮:web

  • 業務數據經常使用嗎?命中率如何?若是命中率低,就沒有必要寫入緩存。
  • 該業務數據是讀操做多仍是寫操做多,若是寫操做多,頻繁須要寫入數據庫,也沒有必要使用緩存。
  • 業務數據大小如何?若是要存儲幾百兆字節的文件,會給緩存帶來很大的壓力,有沒有必要?
    考慮這些問題後,如須要緩存,就可使用了。

Redis的安裝和使用

個人電腦是windows系統的,因此主要以此爲主,其它系統的安裝就沒有介紹。
下載地址:redis
也能夠到Redis的官網下載。
下載下來是一個壓縮包,解壓後的目錄以下:

方便啓動在目錄下新建一個startup.cmd,用編輯工具打開,寫入如下內容:redis-server redis.windows.conf
就是經過命令來讀取redis-window.conf的內容,用來啓動redis,雙擊啓動,出現下圖就說明啓動成功了。

在文件夾下還有一個redis-cli.exe,它一個Redis自帶的客戶端工具,能夠鏈接到redis服務器,如圖:

這樣就安裝好了redis。redis

安裝好了,咱們經過代碼來測試一下redis的性能,要想使用redis,須要下載jedis.jar包。
下面是測試代碼:(代碼來自書上例子)sql

package com.mz.redis;
import redis.clients.jedis.Jedis;
/**
 * @Package com.mz.redis
 * @Description: redis測試
 * @auther MZ
 * @create 2017/10/10 22:14
 */
public class RedisTest {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("localhost",6379);

        int i = 0;
        try {
            long start = System.currentTimeMillis();
            while (true) {
                long end = System.currentTimeMillis();
                if (end - start >= 1000) {
                    break;
                }
                i++;
                jedis.set("test" + i, i + "");
            }
        } finally {
            jedis.close();
        }
        System.out.println("redis每秒操做:"+i+"次");
    }
}

結果如圖:

書上做者的性能能夠達到2萬屢次,而個人只有幾千次,每次運行結果都不同。能夠是個人電腦太老了,沒能體現redis真正的性能。數據庫

相關文章
相關標籤/搜索