Java下使用jedis保存String/Object对象到Linux虚拟机CentOS的Reids服务器

声明:本文的Redis操作部分参考了 edisonfeng的java对redis的基本操作

1.准备工作

1)在Linux虚拟机中安装好Redis,关闭防火墙,并且在redis配置文件CONF中的设置好bind 127.0.0.1 192.168.6.128

192.168.6.128是虚拟机中CentOS的IP地址。

2)在java项目中,引用 jedis-2.1.0.jar 和 commons-pool-1.5.5.jar ,fastjson-1.2.2.jar

2.项目目录结构

3.代码

User是自定义的类,要保存到redis中。java保存对象到redis有两种方法,一是序列化,二是通过JSON转成字符串。

本例子用的是JSON转成字符串,通过阿里的fastjson-1.2.2.jar进行转化。

package com.redis;


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import com.alibaba.fastjson.JSON;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;
import redis.clients.jedis.SortingParams;



public class RedisClient {

    private Jedis jedis;//非切片额客户端连接
    private JedisPool jedisPool;//非切片连接池
    private ShardedJedis shardedJedis;//切片额客户端连接
    private ShardedJedisPool shardedJedisPool;//切片连接池
    
    public RedisClient() 
    { 
        initialPool(); 
        initialShardedPool(); 
        shardedJedis = shardedJedisPool.getResource(); 
        jedis = jedisPool.getResource(); 
        
        
    } 
 
    /**
     * 初始化非切片池
     */
    private void initialPool() 
    { 
        // 池基本配置 
        JedisPoolConfig config = new JedisPoolConfig(); 
        config.setMaxActive(20); 
        config.setMaxIdle(5); 
        config.setMaxWait(1000l); 
        config.setTestOnBorrow(false); 
        
        jedisPool = new JedisPool(config,"192.168.6.128",6379);
    }
    
    /** 
     * 初始化切片池 
     */ 
    private void initialShardedPool() 
    { 
        // 池基本配置 
        JedisPoolConfig config = new JedisPoolConfig(); 
        config.setMaxActive(20); 
        config.setMaxIdle(5); 
        config.setMaxWait(1000l); 
        config.setTestOnBorrow(false); 
        // slave链接 
        List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>(); 
        shards.add(new JedisShardInfo("192.168.6.128", 6379, "master")); 

        // 构造池 
        shardedJedisPool = new ShardedJedisPool(config, shards); 
    } 

    public void show() {  
    	ObjectOperate() ;
        KeyOperate(); 
        StringOperate(); 
        //ListOperate(); 
        //SetOperate();
        //SortedSetOperate();
        //HashOperate(); 
        jedisPool.returnResource(jedis);
        shardedJedisPool.returnResource(shardedJedis);
    } 
    
    private void ObjectOperate() 
    {
    	User user = new User(2,"test","test");
    	String userStr = JSON.toJSONString(user);
    	System.out.println(JSON.toJSONString(user));
    	jedis.set("test",JSON.toJSONString(user));
    }

    private void KeyOperate() 
    { 
        System.out.println("======================key=========================="); 
        // 清空数据 
        System.out.println("清空库中所有数据:"+jedis.flushDB());
        // 判断key否存在 
        System.out.println("判断key999键是否存在:"+shardedJedis.exists("key999")); 
        System.out.println("新增key001,value001键值对:"+shardedJedis.set("key001", "value001")); 
        System.out.println("判断key001是否存在:"+shardedJedis.exists("key001"));
        // 输出系统中所有的key
        System.out.println("新增key002,value002键值对:"+shardedJedis.set("key002", "value002"));
        System.out.pri
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值