Redis實踐篇-簡單demo實現(一)
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.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