gpt4 book ai didi

Java中使用Jedis操作Redis的示例代码

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Java中使用Jedis操作Redis的示例代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

使用Java操作Redis需要jedis-2.1.0.jar,下载地址:jedis-2.1.0.jar 。

如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar,下载地址:commons-pool-1.5.4.jar 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
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" , 0 ,- 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" , 0 ,- 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" , 0 ,- 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" , 0 ,- 1 )); // [9, 3, 6, 1]
     System.out.println(jedis.sort( "a" )); //[1, 3, 6, 9] //输入排序后结果
     System.out.println(jedis.lrange( "a" , 0 ,- 1 ));
   }
  
   @Test
   public void testRedisPool() {
     RedisUtil.getJedis().set( "newname" , "中文测试" );
     System.out.println(RedisUtil.getJedis().get( "newname" ));
   }
}

Redis连接池:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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);
     }
   }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:http://www.cnblogs.com/liuling/p/2014-4-19-04.html 。

最后此篇关于Java中使用Jedis操作Redis的示例代码的文章就讲到这里了,如果你想了解更多关于Java中使用Jedis操作Redis的示例代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com