Jedis学习记录

初始化连接池配置:


<span style="font-size:14px;">public class RedisUtils {
     
	static JedisPool pool;
    //静态代码初始化池配置  
    static {   
        //加载redis配置文件  
    	String maxActive = ReadConfig.dbproperties.getProperty("redis.pool.maxActive");
    	String maxIdle = ReadConfig.dbproperties.getProperty("redis.pool.maxIdle");
    	String maxWait = ReadConfig.dbproperties.getProperty("redis.pool.maxWait");
    	String testOnBorrow = ReadConfig.dbproperties.getProperty("redis.pool.testOnBorrow");
    	String testOnReturn = ReadConfig.dbproperties.getProperty("redis.pool.testOnReturn");
    	String ip = ReadConfig.dbproperties.getProperty("redis.ip");
    	String port = ReadConfig.dbproperties.getProperty("redis.port");
        //创建jedis池配置实例  
        JedisPoolConfig config = new JedisPoolConfig();   
        //设置池配置项值  
        config.setMaxActive(Integer.valueOf(maxActive));
        config.setMaxIdle(Integer.valueOf(maxIdle));
        config.setMaxWait(Integer.valueOf(maxWait));
        config.setTestOnBorrow(Boolean.getBoolean(testOnBorrow));
        config.setTestOnReturn(Boolean.getBoolean(testOnReturn));
        //根据配置实例化jedis池  
        pool = new JedisPool(config, ip, Integer.valueOf(port));
    }
    
    public static void returnResource(Jedis jedis) {  
        if (jedis != null) {  
        	pool.returnResource(jedis);  
        }  
    }
 }</span>


从从jedis池中获取一个jedis实例

private static Jedis jedis = RedisUtils.pool.getResource();


将对象放到List中


<span style="font-size:14px;">public static void addListTypeData() {
		User user = new User();
		user.setAge(25);
		user.setName("buibuihuang");
		user.setId(77);
		SerialUser su = new SerialUser();
		byte[] userInfo = su.serial(user);
		jedis.lpush("UserPipeline".getBytes(),userInfo);
	}</span>

在插入到List之前,需要先将对象序列化成byte[]形式,这里选用的是kyro。

kyro代码:

<span style="font-size:14px;">public class SerialUser {

	private Kryo kryo;
	private ObjectBuffer buff;
	
	public SerialUser() { 
		kryo = new Kryo();
		buff = new ObjectBuffer(kryo);
		//kryo.register(Date.class);
		kryo.register(User.class);
	}
	/*kryo序列化实现*/
	public synchronized byte[] serial(User obj) { 
		if (obj == null) {
			return null;
		} else {
			return buff.writeObject(obj);
		}
	}
	
	/**
	 * kryo反序列化实现.
	 */ 
	public User unserial(byte[] by) { 
		if (by == null) {
			return null;
		} else {
			return buff.readObject(by, User.class);
		}		
	}
}</span>

将对象从List中取出来

<span style="font-size:14px;">public static void getListTypeData() {
		SerialUser su = new SerialUser();
		byte[] userinfor = jedis.rpop("UserPipeline".getBytes());
		/*取出来的需进行反序列化才能转换为对象类型*/
		User user2 = su.unserial(userinfor);
		System.out.println(user2.getAge()+"."+user2.getName());
	}</span>

将对象放到Hash中

<span style="font-size:14px;">public static void addHashTypeData() {
		String UserObject = "UserType2";
		jedis.hset(UserObject, "name", "hghan");
		jedis.hset(UserObject, "age", "25");
		jedis.hset(UserObject, "id", "51");
	}</span>

将对象从hash中取出

<span style="font-size:14px;">public static void getHashTypeData() {
		String nameStr = jedis.hget("UserType2", "name");
		/*取出的是全部属性key-value,放在一个map中*/
		Map<String,String> mapStr = new HashMap<String,String>();
		mapStr = jedis.hgetAll("UserType2");
		System.out.println(nameStr);
		System.out.println(mapStr.get("name"));
	}</span>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值