Redis實踐篇-簡單demo實現(一)

jopen 8年前發布 | 12K 次閱讀 Redis NoSQL數據庫


     Redis是一個key-value存儲系統。Redis的出現,很大程度補償了memcached這類key/value存儲的不足,在部分場合可以對關系數據庫起到很好的補充作用

 

     Redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sortedset--有序集合)和hash(哈希類型)。這些數據類型支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了master-slave(主從復制)。

 

MemcacheRedis區別

 

Memcache提供的數據類型少,只有鍵值對,Redis提供的數據類型相對較多

Memcache關機就沒了,數據全部存到內存當中,但是沒有提供故障恢復,Redis可以將數據存儲到磁盤中

redis提供主從復制,Memcache

Memcache是多線程的(使用協議解決的),redis是單線程


  

Windows下Redis的安裝使用

 

1,安裝Redis

 

官方下載:http://redis.io/download可以根據需要下載不同版本

 

windows版:https://github.com/mythz/redis-windows

 

下載完成后 可以右鍵解壓到 某個硬盤下比如E:\redis64-2.6。

 

2,啟動Redis

 

進入redis目錄后 開啟服務  (注意加上redis.conf)

 

redis-server.exe redis.conf

這個窗口要保持開啟  關閉時redis服務會自動關閉




:redis會自動保存數據到硬盤 所以如果是第二次開啟時 多了一個 DB loaded from disk

 

3,測試使用

 

另外開啟一個命令行窗口 進入redis目錄下(注意修改自己的ip)

 

redis-cli.exe -h 192.168.24.215 -p 6379 




4,利用JAVA操作Redis


import org.junit.After;  
import org.junit.Before;  
import org.junit.Test;  
import redis.clients.jedis.Jedis;  
import redis.clients.jedis.JedisPool;  
import redis.clients.jedis.JedisPoolConfig;  

import javax.sound.midi.Soundbank;  
import java.util.*;  

public class RedisTest {  
    JedisPool pool;  
    Jedis jedis;  
    @Before  
    public void setUp() {  
        pool = new JedisPool(new JedisPoolConfig(), "192.168.24.215");  

        jedis = pool.getResource();  
       /*  jedis.auth("password");  */
    }  

    /** 
     * Redis存儲初級的字符串 
     * CRUD 
     */  
    @Test  
    public void testBasicString(){  
        //-----添加數據----------  
        jedis.set("name","hejingyuan");//向key-->name中放入了value-->hejingyuan  
        System.out.println(jedis.get("name"));//執行結果:hejingyuan  

        //-----修改數據-----------  
        //1、在原來基礎上修改  
        jedis.append("name","xvshu");   //很直觀,類似map 將xvshu append到已經有的value之后  
        System.out.println(jedis.get("name"));//執行結果:hejingyuanxvshu  

        //2、直接覆蓋原來的數據  
        jedis.set("name","何靜媛");  
        System.out.println(jedis.get("name"));//執行結果:何靜媛  

        //刪除key對應的記錄  
        jedis.del("name");  
        System.out.println(jedis.get("name"));//執行結果:null  

        /** 
         * mset相當于 
         * jedis.set("name","hejingyuan"); 
         * jedis.set("xvshu","何靜媛"); 
         */  
        jedis.mset("name","hejingyuan","xvshu","何靜媛");  
        System.out.println(jedis.mget("name","xvshu"));  

    } 

}


輸出結果:

 

hejingyuan

hejingyuanxvshu

何靜媛

null

[hejingyuan, 何靜媛]

 

結束語:

 

     在操作過程中,Redis通過快照(snapshotting)方式默認保存到硬盤中,Redis默認會將快照文件存儲在當前目錄(可CONFIG GETdir來查看)的dump.rdb文件中,可以通過配置dir和dbfilename兩個參數分別指定快照文件的存儲路徑和文件名。

 

在我們操作Redis過程中,它也在不斷的向硬盤中存儲





java操作Redis的各種測試:http://flychao88.iteye.com/blog/1527163

 




來自: http://blog.csdn.net/hejingyuan6/article/details/47602559

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!