redis缓存(jedis), 链接,存,取,String,map,对象

来源:互联网 发布:淘宝定制产品规则 编辑:程序博客网 时间:2024/05/22 07:01

windows 

redis.windows.conf  配置访问ip 和 端口 和 auth 


 cmd cd 到解压目录 执行 redis-server.exe redis.windows.conf   如果不指定配置文件,设置项重新启动后失效

设置好后 可以使用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);//验证密码        redis.set(key, value);      }             public static void main(String[] args){       //try {    Jedis rs = new Jedis ("127.0.0.1",6379);//连接redis          rs.auth(AUTH);//验证密码                        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如果存在就不继续保存到缓存中        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");                          ////////////////////////////////////////////////////                //系统中所有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方法一样都是调用了 sendCommand(...)                rs.del("keyDel");//DEL 移除给定的一个或多个key。如果key不存在,则忽略该命令。          rs.set("keyExpire","一个有20s生命时间的key");        rs.expire("keyExpire",10);//expire 设置Key的过期时间(以秒[s]为单位)                  //TTL 返回给定key的剩余生存时间(time to live)(以秒为单位)         //不设置生命周期 返回值为-1 ,key不存在返回值 -2        System.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);        //参数3        //NX 只有在不存的情况下才设置 key        //XX 只有在已经存在的情况下才设置key        //参数4        //过期时间单位:EX=秒;PX =毫秒        if(flag){        System.out.println("key:"+ifKey+" ,存在");        //key存在设置        rs.set(ifKey, ifKey+",这个key存在 设置他的值为此,生命周期20秒", "XX","EX",20);        }else{        System.out.println("key:"+ifKey+" ,不存在");        //key不存在设置        rs.set(ifKey, ifKey+",这个key 不存在 设置他的值为此,生命周期15秒","NX","EX",15);        }    //} catch (Exception e) {//e.printStackTrace();//}     }     }  


//调试等待不同时间可以观察key 生命周期时进行操作,生命周期外操作 


原创粉丝点击