java操作redis简单学习1.2

和java操作redis简单学习1,1.1一起看,这里是相关方法具体实现:紧接着上文

/**
	 * shardedJedis 操作String
	 * 
	 * 
	 * 2014年12月15日 下午2:44:57
	 * liweihan
	 */
	private void stringOpeara2() {
        //jedis具备的功能shardedJedis中也可直接使用,下面测试一些前面没用过的方法
        System.out.println("======================String_2==========================");
        // 清空数据 
        System.out.println("清空库中所有数据:"+jedis.flushDB());    
        
        //新增键值对时防止覆盖原先值,jedis也可以
        System.out.println("=============新增键值对时防止覆盖原先值=============");
        System.out.println("原先key301不存在时,新增key301:"+shardedJedis.setnx("key301", "value301")); //1
        System.out.println("原先key302不存在时,新增key302:"+shardedJedis.setnx("key302", "value302")); //1
        System.out.println("当key302存在时,尝试新增key302:"+shardedJedis.setnx("key302", "value302_new"));//0
        System.out.println("获取key301对应的值:"+shardedJedis.get("key301")); //value301
        System.out.println("获取key302对应的值:"+shardedJedis.get("key302")); //value302
        
        
        System.out.println("=============超过有效期键值对被删除=============");
        // 设置key的有效期,并存储数据 
        System.out.println("新增key303,并指定过期时间为2秒 :"+shardedJedis.setex("key303", 2, "key303-2second")); //OK
        System.out.println("获取key303对应的值:"+shardedJedis.get("key303")); //key303-2second
        try{ 
            Thread.sleep(3000); 
        } catch (InterruptedException e){ 
        } 
        System.out.println("3秒之后,获取key303对应的值:"+shardedJedis.get("key303")); 
        
        
        System.out.println("=============获取原值,更新为新值一步完成=============");
        System.out.println("key302原值:"+shardedJedis.getSet("key302", "value302-after-getset"));
        System.out.println("key302新值:"+shardedJedis.get("key302"));
        
        
        System.out.println("=============获取子串=============");
        System.out.println("获取key302对应值中的子串:"+shardedJedis.getrange("key302", 5, 7)); 
	}

/**
	 * String功能的测试
	 * 
	 * 
	 * 2014年12月15日 下午2:29:27
	 * liweihan
	 */
	private void stringOpeara() {
		 System.out.println("====================== String_1-test =========================="); 
         // 清空数据 
         System.out.println("清空库中所有数据:"+jedis.flushDB());
         
         //增
         System.out.println("=============增=============");
         jedis.set("key001","value001");
         jedis.set("key002","value002");
         jedis.set("key003","value003");
         System.out.println("已新增的3个键值对如下:");
         System.out.println(jedis.get("key001"));
         System.out.println(jedis.get("key002"));
         System.out.println(jedis.get("key003"));
		
         //删
         System.out.println("=============删=============");  
         System.out.println("删除key003键值对:"+jedis.del("key003")); //1
         System.out.println("获取key003键对应的值:"+jedis.get("key003"));
        
         
         //改
         //1、直接覆盖原来的数据
         System.out.println("直接覆盖key001原来的数据:"+jedis.set("key001","value001-update"));
         System.out.println("获取key001对应的新值:"+jedis.get("key001"));
         //2、直接覆盖原来的数据  
         System.out.println("在key002原来值后面追加:"+jedis.append("key002","+appendString"));
         System.out.println("获取key002对应的新值"+jedis.get("key002")); 
         
         //增删查多个
         System.out.println("=============增,删,查(多个)=============");
         System.out.println("一次性新增key201,key202,key203,key204及其对应值:"+jedis.mset("key201","value201",
                 "key202","value202","key203","value203","key204","value204"));  //OK
         System.out.println("一次性获取key201,key202,key203,key204各自对应的值:"+
                 jedis.mget("key201","key202","key203","key204")); //数组[value201, value202, value203, value204]
         
         System.out.println("一次性删除key201,key202:"+jedis.del(new String[]{"key201", "key202","key205"})); //2
         System.out.println("一次性获取key201,key202,key203,key204各自对应的值:"+
                 jedis.mget("key201","key202","key203","key204")); //[null, null, value203, value204]
         
	}

/**
	 * key的功能测试
	 * 
	 * 
	 * 2014年12月14日 下午5:42:11
	 * liweihan
	 */
	private void keyOperater() {
        System.out.println("====================== key-test =========================="); 
        // 清空数据 
        System.out.println("清空库中所有数据[默认是select 0库]:" + jedis.flushDB()); //OK
        
        
        // 判断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.println("系统中所有键如下:");
        Set<String> keys =jedis.keys("*"); 
        Iterator<String> it=keys.iterator() ;   
        while(it.hasNext()){   
            String key = it.next();   
            System.out.println(key);   
        }
        
        // 删除某个key,若key不存在,则忽略该命令。
        System.out.println("系统中删除key002: "+jedis.del("key002")); //1
        System.out.println("系统中删除key003: "+jedis.del("key003")); //0
        System.out.println("判断key002是否存在:"+shardedJedis.exists("key002"));
        
        // 设置 key001的过期时间
        System.out.println("设置 key001的过期时间为5秒:"+jedis.expire("key001", 5));
        try{ 
            Thread.sleep(2000); 
        } 
        catch (InterruptedException e){ 
        } 
        // 查看某个key的剩余生存时间,单位【秒】.永久生存或者不存在的都返回-1
        System.out.println("查看key001的剩余生存时间:"+jedis.ttl("key001"));//3
        System.out.println("查看key002的剩余生存时间:"+jedis.ttl("key002")); //-2说明该key002不存在
        
        // 移除某个key的生存时间
        System.out.println("移除key001的生存时间:"+jedis.persist("key001")); //1
        System.out.println("查看key001的剩余生存时间:"+jedis.ttl("key001")); //-1
        
        // 查看key所储存的值的类型
        System.out.println("查看key所储存的值的类型:"+jedis.type("key001"));
        
        //修改键名
        System.out.println("修改key001的键名:" + jedis.rename("key001", "key001_new")); //0K
        
        //当前DB的key移动到其他给定的DB中
        System.out.println("移动key001_new到DB2中:" + jedis.move("key001_new", 2));//1
        
	}

测试类:

package com.hanchao.testredis;
/**
 * @author liweihan 
 * @version 1.0 (2014年12月14日 下午2:38:26)
 */
public class TestRedis1 {
	
	public static void main(String[] args) {
		
		new RedisClent().show();
		
	}

}


您可以可以参考这篇文章:http://www.cnblogs.com/edisonfeng/p/3571870.html

2014-12-23-加

集群加密码:分布式的redis,加密码了,但是对于只读的redis是不能写的。建议这种集群只用于读就行了。

	/**
	 * 初始化切片池
	 * http://yychao.iteye.com/blog/1751583
	 * 2014年12月14日 下午5:33:56
	 * liweihan
	 */
	private void initialShardedPool() {
		//池子基本配置
		JedisPoolConfig config = new JedisPoolConfig();
		 //控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取;
        //如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
		config.setMaxActive(20);
		//控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。
		config.setMaxIdle(5);
		//表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;
		config.setMaxWait(10000L);
		////在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
		config.setTestOnBorrow(false);
		
		//slave链接-分布式
		List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
//		shards.add(new JedisShardInfo("10.10.78.208",6379,"master"));
//		shards.add(new JedisShardInfo("10.10.52.141",6379,"slave"));
		
		//增加了密码的集群-只读
		JedisShardInfo jedisShardInfo = new JedisShardInfo("10.10.50.6", 1058, 3000, 3);
		jedisShardInfo.setPassword("64451241320683dda7f99fc177ac8088");
		JedisShardInfo jedisShardInfo1 = new JedisShardInfo("10.10.50.5", 1059, 3000, 12);
		jedisShardInfo1.setPassword("64451241320683dda7f99fc177ac8088");
		JedisShardInfo jedisShardInfo2 = new JedisShardInfo("10.16.16.16", 1060, 3000, 12);
		jedisShardInfo2.setPassword("64451241320683dda7f99fc177ac8088");
		
		shards.add(jedisShardInfo);
		shards.add(jedisShardInfo1);
		shards.add(jedisShardInfo2);
		
		
		
		//注意事项:此处的redis必须都是主的,不能是从的。如果是从的会报错的!
		
		//构造池
		shardedJedisPool = new ShardedJedisPool(config, shards);
	}

单台的redis加密码:

	/**
	 * 初始化非切片池
	 * 2014年12月14日 下午5:30:26
	 * liweihan
	 */
	private void initialPool() {
		//池子基本配置
		JedisPoolConfig config = new JedisPoolConfig();
		config.setMaxActive(20);
		config.setMaxIdle(5);
		config.setMaxWait(10000L);
		config.setTestOnBorrow(false);
		
		//jedisPool = new JedisPool(config, "10.10.78.208",6379);
		jedisPool = new JedisPool(config, "10.10.78.208", 6379, 3000, "64451241320683dda7f99fc177ac8088");
	}


你可能感兴趣的:(java,redis,java操作redis)