redis簡單運用,數據類型,適合入門

初始redis,人們總說它是一個緩存,後來才明白,其實就是個數據庫,可是這個數據庫不是把數據持久化到硬盤,而是存在內存中。所以寫入和讀取速度都是比通常數據庫好比mysql快的多,因此能夠做爲緩存。java

redis是一個非關係型數據庫,什麼叫非關係型數據庫呢,這是相對於關係型數據庫來講的。關係型數據庫就是咱們常常見到的mysql、oracle、sqlserver等數據庫,它們的存儲讀取都是靠sql來操做的,並且都有表結構。而非關係型數據庫是沒有表結構的,因此也不能用sql來操做。事實上,redis數據庫中存儲的都是形如key-value形式的數據,看似像一個map,存值的時候,能夠set,取值的時候,能夠get。mysql

想要使用redis,首先須要啓動一個redis服務,正如咱們使用mysql的時候也須要先安裝mysql服務,並啓動,在windows系統上,有封裝好的免安裝版redis服務,解壓後,管理員權限運行redis目錄下的redis-server.exe,就啓動了一個redis服務,以下,redis的默認端口是6379redis

接下來,在程序中咱們試着往裏存數據,新建一個java項目,引入jedis的jar包sql

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>

接着,咱們用main方法測試數據庫

public static void main(String[] args) {
        //鏈接redis
        //第一個參數爲redis服務器的地址,這裏是本機
        //第二個參數爲端口,redis默認爲6379
        Jedis jedis = new Jedis("localhost",6379);
        //其餘操做,見下文中的代碼
    }

在redis存取值時,都是用上述redis對象來操做windows

redis能夠存儲五種類型結構的數據,strings、hashs、lists、sets、sorted sets緩存

下面一一介紹服務器

首先就是strings,這個就至關於java中的Map<String,String>類型數據結構

//存一對兒key-value值
jedis.set("name","zhangsan");
//存好多對兒key-value值
jedis.mset("sex","1","age","27");
//存一對兒key-value值,而且設置有效期,單位爲秒
jedis.setex("score",15,"60");
//給key爲name的value值後面拼接追加字符串lisi
jedis.append("name","lisi");

 

利用可視化工具看到的爲:oracle

score的顏色是灰色,那是由於它是臨時值,在15秒後就會被自動刪除掉

//獲取一個key的值
String a = jedis.get("name");
//獲取多個key的值
List list = jedis.mget("name","age","sex");

 

第二種數據結構爲hashs,這個至關於java中的Map<String,Map<String,String>>;

//添加key爲url,值爲【key爲google,value爲www.google.com】的記錄
jedis.hset("url","google","www.google.com");
//添加key爲url,值爲【key爲baidu,value爲www.baidu.com】的記錄
jedis.hset("url","baidu","www.baidu.com");
//批量設置
Map<String,String> map = new HashMap<String,String>();
map.put("name","zhangsan");
map.put("sex","1");
map.put("age","27");
jedis.hmset("userinfo",map);
//獲取url中的google對應的值
String a = jedis.hget("url", "google");
//獲取url中google、baidu對應的值
List b = jedis.hmget("url","google","baidu");
//獲取userinfo中存儲的全部信息
Map c = jedis.hgetAll("userinfo");
相關文章
相關標籤/搜索