jedis使用实例

Jedis 是 Redis 官方首选的 Java 客户端开发包。

工作过程总结的一个示例如下:

Java代码   收藏代码
  1. package com.wujintao.redis;  
  2.   
  3. import java.util.Date;  
  4. import java.util.HashMap;  
  5. import java.util.Iterator;  
  6. import java.util.List;  
  7. import java.util.Map;  
  8. import java.util.Set;  
  9.   
  10. import org.junit.Test;  
  11.   
  12. import redis.clients.jedis.Jedis;  
  13. import redis.clients.jedis.Pipeline;  
  14. import redis.clients.jedis.SortingParams;  
  15.   
  16. import com.wujintao.redis.util.RedisUtil;  
  17.   
  18.   
  19. public class TestCase {  
  20.   
  21.     /** 
  22.      * 在不同的线程中使用相同的Jedis实例会发生奇怪的错误。但是创建太多的实现也不好因为这意味着会建立很多sokcet连接, 
  23.      * 也会导致奇怪的错误发生。单一Jedis实例不是线程安全的。为了避免这些问题,可以使用JedisPool, 
  24.      * JedisPool是一个线程安全的网络连接池。可以用JedisPool创建一些可靠Jedis实例,可以从池中拿到Jedis的实例。 
  25.      * 这种方式可以解决那些问题并且会实现高效的性能 
  26.      */  
  27.   
  28.     public static void main(String[] args) {  
  29.   
  30.         // ...when closing your application:  
  31.         RedisUtil.getPool().destroy();  
  32.   
  33.     }  
  34.   
  35.     public static void Hello() {  
  36.         Jedis jedis = RedisUtil.getJedis();  
  37.         try {  
  38.             // 向key-->name中放入了value-->minxr  
  39.             jedis.set("name""minxr");  
  40.             String ss = jedis.get("name");  
  41.             System.out.println(ss);  
  42.   
  43.             // 很直观,类似map 将jintao append到已经有的value之后  
  44.             jedis.append("name""jintao");  
  45.             ss = jedis.get("name");  
  46.             System.out.println(ss);  
  47.   
  48.             // 2、直接覆盖原来的数据  
  49.             jedis.set("name""jintao");  
  50.             System.out.println(jedis.get("jintao"));  
  51.   
  52.             // 删除key对应的记录  
  53.             jedis.del("name");  
  54.             System.out.println(jedis.get("name"));// 执行结果:null  
  55.   
  56.             /** 
  57.              * mset相当于 jedis.set("name","minxr"); jedis.set("jarorwar","aaa"); 
  58.              */  
  59.             jedis.mset("name""minxr""jarorwar""aaa");  
  60.             System.out.println(jedis.mget("name""jarorwar"));  
  61.         } catch (Exception e) {  
  62.             e.printStackTrace();  
  63.         } finally {  
  64.             RedisUtil.getPool().returnResource(jedis);  
  65.         }  
  66.   
  67.     }  
  68.   
  69.     private void testKey() {  
  70.         Jedis jedis = RedisUtil.getJedis();  
  71.         System.out.println("=============key==========================");  
  72.         // 清空数据  
  73.         System.out.println(jedis.flushDB());  
  74.         System.out.println(jedis.echo("foo"));  
  75.         // 判断key否存在  
  76.         System.out.println(jedis.exists("foo"));  
  77.         jedis.set("key""values");  
  78.         System.out.println(jedis.exists("key"));  
  79.     }  
  80.   
  81.     public static void testString() {  
  82.         System.out.println("==String==");  
  83.         Jedis jedis = RedisUtil.getJedis();  
  84.         try {  
  85.             // String  
  86.             jedis.set("key""Hello World!");  
  87.             String value = jedis.get("key");  
  88.             System.out.println(value);  
  89.         } catch (Exception e) {  
  90.             e.printStackTrace();  
  91.         } finally {  
  92.             RedisUtil.getPool().returnResource(jedis);  
  93.         }  
  94.   
  95.         System.out.println("=============String==========================");  
  96.         // 清空数据  
  97.         System.out.println(jedis.flushDB());  
  98.         // 存储数据  
  99.         jedis.set("foo""bar");  
  100.         System.out.println(jedis.get("foo"));  
  101.         // 若key不存在,则存储  
  102.         jedis.setnx("foo""foo not exits");  
  103.         System.out.println(jedis.get("foo"));  
  104.         // 覆盖数据  
  105.         jedis.set("foo""foo update");  
  106.         System.out.println(jedis.get("foo"));  
  107.         // 追加数据  
  108.         jedis.append("foo"" hello, world");  
  109.         System.out.println(jedis.get("foo"));  
  110.         // 设置key的有效期,并存储数据  
  111.         jedis.setex("foo"2"foo not exits");  
  112.         System.out.println(jedis.get("foo"));  
  113.         try {  
  114.             Thread.sleep(3000);  
  115.         } catch (InterruptedException e) {  
  116.         }  
  117.         System.out.println(jedis.get("foo"));  
  118.         // 获取并更改数据  
  119.         jedis.set("foo""foo update");  
  120.         System.out.println(jedis.getSet("foo""foo modify"));  
  121.         // 截取value的值  
  122.         System.out.println(jedis.getrange("foo"13));  
  123.         System.out.println(jedis.mset("mset1""mvalue1""mset2""mvalue2",  
  124.                 "mset3""mvalue3""mset4""mvalue4"));  
  125.         System.out.println(jedis.mget("mset1""mset2""mset3""mset4"));  
  126.         System.out.println(jedis.del(new String[] { "foo""foo1""foo3" }));  
  127.     }  
  128.   
  129.     public static void testList() {  
  130.         System.out.println("==List==");  
  131.         Jedis jedis = RedisUtil.getJedis();  
  132.         try {  
  133.             // 开始前,先移除所有的内容  
  134.             jedis.del("messages");  
  135.             jedis.rpush("messages""Hello how are you?");  
  136.             jedis.rpush("messages""Fine thanks. I'm having fun with redis.");  
  137.             jedis.rpush("messages""I should look into this NOSQL thing ASAP");  
  138.   
  139.             // 再取出所有数据jedis.lrange是按范围取出,  
  140.             // 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有  
  141.             List<String> values = jedis.lrange("messages"0, -1);  
  142.             System.out.println(values);  
  143.   
  144.         } catch (Exception e) {  
  145.             e.printStackTrace();  
  146.         } finally {  
  147.             RedisUtil.getPool().returnResource(jedis);  
  148.         }  
  149.   
  150.         // 清空数据  
  151.         System.out.println(jedis.flushDB());  
  152.         // 添加数据  
  153.         jedis.lpush("lists""vector");  
  154.         jedis.lpush("lists""ArrayList");  
  155.         jedis.lpush("lists""LinkedList");  
  156.         // 数组长度  
  157.         System.out.println(jedis.llen("lists"));  
  158.         // 排序  
  159.         System.out.println(jedis.sort("lists"));  
  160.         // 字串  
  161.         System.out.println(jedis.lrange("lists"03));  
  162.         // 修改列表中单个值  
  163.         jedis.lset("lists"0"hello list!");  
  164.         // 获取列表指定下标的值  
  165.         System.out.println(jedis.lindex("lists"1));  
  166.         // 删除列表指定下标的值  
  167.         System.out.println(jedis.lrem("lists"1"vector"));  
  168.         // 删除区间以外的数据  
  169.         System.out.println(jedis.ltrim("lists"01));  
  170.         // 列表出栈  
  171.         System.out.println(jedis.lpop("lists"));  
  172.         // 整个列表值  
  173.         System.out.println(jedis.lrange("lists"0, -1));  
  174.     }  
  175.   
  176.     public static void testSet() {  
  177.         System.out.println("==Set==");  
  178.         Jedis jedis = RedisUtil.getJedis();  
  179.         try {  
  180.             jedis.sadd("myset""1");  
  181.             jedis.sadd("myset""2");  
  182.             jedis.sadd("myset""3");  
  183.             jedis.sadd("myset""4");  
  184.             Set<String> setValues = jedis.smembers("myset");  
  185.             System.out.println(setValues);  
  186.   
  187.             // 移除noname  
  188.             jedis.srem("myset""4");  
  189.             System.out.println(jedis.smembers("myset"));// 获取所有加入的value  
  190.             System.out.println(jedis.sismember("myset""4"));// 判断 minxr  
  191.                                                                 // 是否是sname集合的元素  
  192.             System.out.println(jedis.scard("sname"));// 返回集合的元素个数  
  193.         } catch (Exception e) {  
  194.             e.printStackTrace();  
  195.         } finally {  
  196.             RedisUtil.getPool().returnResource(jedis);  
  197.         }  
  198.   
  199.         // 清空数据  
  200.         System.out.println(jedis.flushDB());  
  201.         // 添加数据  
  202.         jedis.sadd("sets""HashSet");  
  203.         jedis.sadd("sets""SortedSet");  
  204.         jedis.sadd("sets""TreeSet");  
  205.         // 判断value是否在列表中  
  206.         System.out.println(jedis.sismember("sets"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值