Java中使用jedis操作redis
发布时间:2020-12-15 03:13:29 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 package?com.test;import?java.util.HashMap;import?java.util.Iterator;import?java.util.List;import?java.util.Map;import?org.junit.Before;impor
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 package?com.test; import?java.util.HashMap; import?java.util.Iterator; import?java.util.List; import?java.util.Map; import?org.junit.Before; import?org.junit.Test; import?redis.clients.jedis.Jedis; public?class?TestRedis?{ ????private?Jedis?jedis;? ???? ????@Before ????public?void?setup()?{ ????????//连接redis服务器,192.168.0.100:6379 ????????jedis?=?new?Jedis("192.168.0.100",?6379); ????????//权限认证 ????????jedis.auth("admin");?? ????} ???? ????/** ?????*?redis存储字符串 ?????*/ ????@Test ????public?void?testString()?{ ????????//-----添加数据----------?? ????????jedis.set("name","xinxin");//向key-->name中放入了value-->xinxin?? ????????System.out.println(jedis.get("name"));//执行结果:xinxin?? ???????? ????????jedis.append("name",?"?is?my?lover");?//拼接 ????????System.out.println(jedis.get("name"));? ???????? ????????jedis.del("name");??//删除某个键 ????????System.out.println(jedis.get("name")); ????????//设置多个键值对 ????????jedis.mset("name","liuling","age","23","qq","476777XXX"); ????????jedis.incr("age");?//进行加1操作 ????????System.out.println(jedis.get("name")?+?"-"?+?jedis.get("age")?+?"-"?+?jedis.get("qq")); ???????? ????} ???? ????/** ?????*?redis操作Map ?????*/ ????@Test ????public?void?testMap()?{ ????????//-----添加数据----------?? ????????Map<String,?String>?map?=?new?HashMap<String,?String>(); ????????map.put("name",?"xinxin"); ????????map.put("age",?"22"); ????????map.put("qq",?"123456"); ????????jedis.hmset("user",map); ????????//取出user中的name,执行结果:[minxr]-->注意结果是一个泛型的List?? ????????//第一个参数是存入redis中map对象的key,后面跟的是放入map中的对象的key,后面的key可以跟多个,是可变参数?? ????????List<String>?rsmap?=?jedis.hmget("user",?"name",?"age",?"qq"); ????????System.out.println(rsmap);?? ?? ????????//删除map中的某个键值?? ????????jedis.hdel("user","age"); ????????System.out.println(jedis.hmget("user",?"age"));?//因为删除了,所以返回的是null?? ????????System.out.println(jedis.hlen("user"));?//返回key为user的键中存放的值的个数2? ????????System.out.println(jedis.exists("user"));//是否存在key为user的记录?返回true?? ????????System.out.println(jedis.hkeys("user"));//返回map对象中的所有key?? ????????System.out.println(jedis.hvals("user"));//返回map对象中的所有value? ?? ????????Iterator<String>?iter=jedis.hkeys("user").iterator();?? ????????while?(iter.hasNext()){?? ????????????String?key?=?iter.next();?? ????????????System.out.println(key+":"+jedis.hmget("user",key));?? ????????}?? ????} ???? ????/**? ?????*?jedis操作List? ?????*/?? ????@Test?? ????public?void?testList(){?? ????????//开始前,先移除所有的内容?? ????????jedis.del("java?framework");?? ????????System.out.println(jedis.lrange("java?framework",-1));?? ????????//先向key?java?framework中存放三条数据?? ????????jedis.lpush("java?framework","spring");?? ????????jedis.lpush("java?framework","struts");?? ????????jedis.lpush("java?framework","hibernate");?? ????????//再取出所有数据jedis.lrange是按范围取出,?? ????????//?第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度?-1表示取得所有?? ????????System.out.println(jedis.lrange("java?framework",-1));?? ???????? ????????jedis.del("java?framework"); ????????jedis.rpush("java?framework","spring");?? ????????jedis.rpush("java?framework","struts");?? ????????jedis.rpush("java?framework","hibernate");? ????????System.out.println(jedis.lrange("java?framework",-1)); ????}?? ???? ????/**? ?????*?jedis操作Set? ?????*/?? ????@Test?? ????public?void?testSet(){?? ????????//添加?? ????????jedis.sadd("user","liuling");?? ????????jedis.sadd("user","xinxin");?? ????????jedis.sadd("user","ling");?? ????????jedis.sadd("user","zhangxinxin"); ????????jedis.sadd("user","who");?? ????????//移除noname?? ????????jedis.srem("user","who");?? ????????System.out.println(jedis.smembers("user"));//获取所有加入的value?? ????????System.out.println(jedis.sismember("user",?"who"));//判断?who?是否是user集合的元素?? ????????System.out.println(jedis.srandmember("user"));?? ????????System.out.println(jedis.scard("user"));//返回集合的元素个数?? ????}?? ?? ????@Test?? ????public?void?test()?throws?InterruptedException?{?? ????????//jedis?排序?? ????????//注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的)?? ????????jedis.del("a");//先清除数据,再加入数据进行测试?? ????????jedis.rpush("a",?"1");?? ????????jedis.lpush("a","6");?? ????????jedis.lpush("a","3");?? ????????jedis.lpush("a","9");?? ????????System.out.println(jedis.lrange("a",-1));//?[9,?3,?6,?1]?? ????????System.out.println(jedis.sort("a"));?//[1,?9]??//输入排序后结果?? ????????System.out.println(jedis.lrange("a",-1));?? ????}?? ???? ????@Test ????public?void?testRedisPool()?{ ????????RedisUtil.getJedis().set("newname",?"中文测试"); ????????System.out.println(RedisUtil.getJedis().get("newname")); ????} } package?com.test; import?redis.clients.jedis.Jedis; import?redis.clients.jedis.JedisPool; import?redis.clients.jedis.JedisPoolConfig; public?final?class?RedisUtil?{ ???? ????//Redis服务器IP ????private?static?String?ADDR?=?"192.168.0.100"; ???? ????//Redis的端口号 ????private?static?int?PORT?=?6379; ???? ????//访问密码 ????private?static?String?AUTH?=?"admin"; ???? ????//可用连接实例的最大数目,默认值为8; ????//如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。 ????private?static?int?MAX_ACTIVE?=?1024; ???? ????//控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。 ????private?static?int?MAX_IDLE?=?200; ???? ????//等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException; ????private?static?int?MAX_WAIT?=?10000; ???? ????private?static?int?TIMEOUT?=?10000; ???? ????//在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的; ????private?static?boolean?TEST_ON_BORROW?=?true; ???? ????private?static?JedisPool?jedisPool?=?null; ???? ????/** ?????*?初始化Redis连接池 ?????*/ ????static?{ ????????try?{ ????????????JedisPoolConfig?config?=?new?JedisPoolConfig(); ????????????config.setMaxActive(MAX_ACTIVE); ????????????config.setMaxIdle(MAX_IDLE); ????????????config.setMaxWait(MAX_WAIT); ????????????config.setTestOnBorrow(TEST_ON_BORROW); ????????????jedisPool?=?new?JedisPool(config,?ADDR,?PORT,?TIMEOUT,?AUTH); ????????}?catch?(Exception?e)?{ ????????????e.printStackTrace(); ????????} ????} ???? ????/** ?????*?获取Jedis实例 ?????*?@return ?????*/ ????public?synchronized?static?Jedis?getJedis()?{ ????????try?{ ????????????if?(jedisPool?!=?null)?{ ????????????????Jedis?resource?=?jedisPool.getResource(); ????????????????return?resource; ????????????}?else?{ ????????????????return?null; ????????????} ????????}?catch?(Exception?e)?{ ????????????e.printStackTrace(); ????????????return?null; ????????} ????} ???? ????/** ?????*?释放jedis资源 ?????*?@param?jedis ?????*/ ????public?static?void?returnResource(final?Jedis?jedis)?{ ????????if?(jedis?!=?null)?{ ????????????jedisPool.returnResource(jedis); ????????} ????} } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |