jedis对五种数据类型的操作

本文介绍了Redis数据库的五种主要数据类型:字符串(string)、散列(hash)、列表(list)、集合(set)及有序集合(zset),并通过Java代码演示了每种数据类型的使用方法。

package test;
import java.util.Iterator;
import java.util.List;
import java.util.Set;


import redis.clients.jedis.Jedis;
/**
 * 
 * redis是键值对的数据库,有5中主要数据类型:
 * 字符串类型(string),散列类型(hash),列表类型(list),集合类型(set),有序集合类型(zset)
 *
 */
public class RedisTest {
	  public static void main(String[] args) {
	        //连接本地的 Redis 服务
	        Jedis jedis = new Jedis("");
	        //查看服务是否运行
	        System.out.println("服务正在运行: "+jedis.ping());
	        
	        //1、字符串
	        jedis.set("a", "aaa");
	        System.out.println("连接成功"+jedis.get("a")+"--");
	        
	        //2、Hash 对于某些不定项操作可以利用哈希扩展   
	        jedis.hset("tom", "name", "aa");
	        jedis.hset("tom", "age", "12");
	        System.out.println(jedis.hmget("tom","age"));
	        System.err.println(jedis.hgetAll("tom"));
	        
	        //3、List列表


	        jedis.lpush("push", "push1");
	        jedis.lpush("push", "push2");
	        jedis.lpush("push", "push3");
	        jedis.lpush("push", "push2");	        
	        	// 获取存储的数据并输出
	        List<String> list = jedis.lrange("push", 0 ,jedis.llen("push"));
	        for(int i=0; i<list.size(); i++) {
	            System.out.println("列表项为: "+list.get(i));
	        }
	       
	        //4、Set 集合 不能添加重复元素	
	        jedis.sadd("fruit", "苹果","香蕉","橘子");
	        jedis.sadd("zoo", "狗", "猫", "猪", "橘子");  
	        System.out.println(jedis.smembers("friut")+"随机:"+jedis.srandmember("friut"));
	         	//fruit与zoo的交集
	        System.out.println("含有相同元素:"+jedis.sinter("friut","zoo"));
	        
	        //5、有序集合zset
	        jedis.zadd("setTest",2,"set2");
	        jedis.zadd("setTest",1,"set1");
	        jedis.zadd("setTest",3,"set3");
	        jedis.zadd("setTest",4,"set4");
	        Set<String> set = jedis.zrange("setTest",0,-1);
	        Iterator<String> it = set.iterator();
	        while(it.hasNext()){	        	
	        	System.out.println(it.next());
	        }
	    }
}


 

Redis连接池:

复制代码
 1 package com.test;
 2 
 3 import redis.clients.jedis.Jedis;
 4 import redis.clients.jedis.JedisPool;
 5 import redis.clients.jedis.JedisPoolConfig;
 6 
 7 public final class RedisUtil {
 8     
 9     //Redis服务器IP
10     private static String ADDR = "192.168.0.100";
11     
12     //Redis的端口号
13     private static int PORT = 6379;
14     
15     //访问密码
16     private static String AUTH = "admin";
17     
18     //可用连接实例的最大数目,默认值为8;
19     //如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
20     private static int MAX_ACTIVE = 1024;
21     
22     //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。
23     private static int MAX_IDLE = 200;
24     
25     //等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException;
26     private static int MAX_WAIT = 10000;
27     
28     private static int TIMEOUT = 10000;
29     
30     //在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
31     private static boolean TEST_ON_BORROW = true;
32     
33     private static JedisPool jedisPool = null;
34     
35     /**
36      * 初始化Redis连接池
37      */
38     static {
39         try {
40             JedisPoolConfig config = new JedisPoolConfig();
41             config.setMaxActive(MAX_ACTIVE);
42             config.setMaxIdle(MAX_IDLE);
43             config.setMaxWait(MAX_WAIT);
44             config.setTestOnBorrow(TEST_ON_BORROW);
45             jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH);
46         } catch (Exception e) {
47             e.printStackTrace();
48         }
49     }
50     
51     /**
52      * 获取Jedis实例
53      * @return
54      */
55     public synchronized static Jedis getJedis() {
56         try {
57             if (jedisPool != null) {
58                 Jedis resource = jedisPool.getResource();
59                 return resource;
60             } else {
61                 return null;
62             }
63         } catch (Exception e) {
64             e.printStackTrace();
65             return null;
66         }
67     }
68     
69     /**
70      * 释放jedis资源
71      * @param jedis
72      */
73     public static void returnResource(final Jedis jedis) {
74         if (jedis != null) {
75             jedisPool.returnResource(jedis);
76         }
77     }
78 }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值