redis缓存(jedis), 链接,存,取,String,map,对象
生活随笔
收集整理的這篇文章主要介紹了
redis缓存(jedis), 链接,存,取,String,map,对象
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
windwos端修改
redis.windows.conf?文件 配置訪問ip 和 端口 和 auth?
端口 ?port 6379
密碼 ?requirepass 123456
?
?cmd cd 到解壓目錄 執(zhí)行?redis-server.exe redis.windows.conf? ?如果不指定配置文件,設(shè)置項(xiàng)重新啟動后失效
啟動成功
?
?
?若報錯
[2368] 21 Apr 02:57:05.611 # Creating Server TCP listening socket 127.0.0.1:6379: bind: No error
解決方法:在命令行中運(yùn)行
redis-cli.exe
127.0.0.1:6379>shutdown
not connected>exit
然后重新運(yùn)行redis-server.exe redis.windows.conf,啟動成功!
?
設(shè)置好后?可以使用redismanager 可視化工具連接??安裝包,可視化工具&jar
?
?
?
java
?
import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set;import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisShardInfo; public class JedisDemo{ private final static String AUTH = "12345678";//redis 密碼 //transient 不會被序列化public void addHashMap(String key, HashMap map){Jedis redis = new Jedis ("127.0.0.1",6379);//連接redis redis.auth(AUTH);redis.hmset(key, map);System.out.println("hashmap set success!");}public HashSet queryHashMapByKey(String key){ Jedis redis = new Jedis ("127.0.0.1",6379);//連接redis redis.auth(AUTH);//return (HashSet) redis.hvals(key); return (HashSet) redis.hkeys(key);} public List queryHashMapByVal(String key){JedisShardInfo info = new JedisShardInfo("127.0.0.1",6379);Jedis redis = new Jedis (info);//連接redis redis.auth(AUTH);Set keys = (HashSet) redis.hkeys(key);Iterator<String> it = keys.iterator(); Long l = redis.hlen(key);Integer i = Integer.valueOf(l.toString());String[] strw = new String[i];int index = 0;while(it.hasNext()){ String obj1 = it.next(); strw[index] = obj1;index++;System.out.println("key="+obj1 +", value ="+ redis.hmget(key,obj1));}return redis.hmget(key,strw);} public String queryString(String key){ Jedis redis = new Jedis ("127.0.0.1",6379);//連接redis redis.auth(AUTH);return redis.get(key); }//加入redis緩存public void addString(String key,String value){ Jedis redis = new Jedis ("127.0.0.1",6379);//連接redis redis.auth(AUTH);//驗(yàn)證密碼redis.set(key, value); } public static void main(String[] args){ //try {Jedis rs = new Jedis ("127.0.0.1",6379);//連接redis rs.auth(AUTH);//驗(yàn)證密碼JedisDemo t1 = new JedisDemo(); //String t1.addString("key1","第一個值String類型的"); String value = t1.queryString("key1"); System.out.println("get key1 >>>" + value);//HashMap HashMap map = new HashMap(); for (int i = 0; i < 10000; i++) {//hashmap里的key如果存在就不繼續(xù)保存到緩存中if(!rs.hexists("hashmap","MapId"+i)){map.put("MapId"+i, "MapValue"+i); }}if(!rs.exists("hashmap")){t1.addHashMap("hashmap", map); }HashSet list = t1.queryHashMapByKey("hashmap"); List list2 = t1.queryHashMapByVal("hashmap"); //系統(tǒng)中所有key: Set<String> keys = rs.keys("*"); Iterator<String> it = keys.iterator(); while(it.hasNext()){ Object obj1 = it.next(); System.out.println(obj1); }rs.append("001", "一個");//和set方法一樣都是調(diào)用了 sendCommand(...)rs.del("keyDel");//DEL 移除給定的一個或多個key。如果key不存在,則忽略該命令。 rs.set("keyExpire","一個有20s生命時間的key");rs.expire("keyExpire",10);//expire 設(shè)置Key的過期時間(以秒[s]為單位) //TTL 返回給定key的剩余生存時間(time to live)(以秒為單位) //不設(shè)置生命周期 返回值為-1 ,key不存在返回值 -2System.out.println("剩余生存時間"+rs.ttl("keyExpire")+"秒");rs.persist("keyExpire");//PERSIST key 移除給定key的生存時間。 System.out.println(rs.ttl("keyExpire"));//移除生命周期后返回值為 -1//EXISTS 檢查給定key是否存在。 String ifKey = "keyExpire";boolean flag = rs.exists(ifKey);//參數(shù)3//NX 只有在不存的情況下才設(shè)置 key//XX 只有在已經(jīng)存在的情況下才設(shè)置key//參數(shù)4//過期時間單位:EX=秒;PX =毫秒if(flag){System.out.println("key:"+ifKey+" ,存在");//key存在設(shè)置rs.set(ifKey, ifKey+",這個key存在 設(shè)置他的值為此,生命周期20秒", "XX","EX",20);}else{System.out.println("key:"+ifKey+" ,不存在");//key不存在設(shè)置rs.set(ifKey, ifKey+",這個key 不存在 設(shè)置他的值為此,生命周期15秒","NX","EX",15);}//} catch (Exception e) {//e.printStackTrace();//}} }?
?
?
?
?
//調(diào)試等待不同時間可以觀察key 生命周期時進(jìn)行操作,生命周期外操作?
?
總結(jié)
以上是生活随笔為你收集整理的redis缓存(jedis), 链接,存,取,String,map,对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 优酷视频如何在手机进行安全设置?
- 下一篇: 【学术相关】高校教师提前离职需支付“天价