標籤:
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(主從複製)。
Memcache與Redis區別
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.exeredis.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
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
【NoSql】Redis實踐篇-簡單demo實現(一)