zoukankan      html  css  js  c++  java
  • linux下小试redis demo

    先启动  redis-server /etc/redis/redis.conf 

    package com.test;
    
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Set;
    
    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;
     
    /**
     * 
     * @author luozhonghua
     *
     */
    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);
             System.out.println("begin...");
    		jedisPool = new JedisPool(config, "127.0.0.1", 6379);
    		 System.out.println("end...");
    	}
    
    	/**
    	 * 初始化切片池
    	 */
    	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("127.0.0.1", 6379, "master"));
    
    		// 构造池
    		shardedJedisPool = new ShardedJedisPool(config, shards);
    	}
    
    	public void show() {
    		KeyOperate();
    		StringOperate();
    		ListOperate();
    		SetOperate();
    		SortedSetOperate();
    		HashOperate();
    		jedisPool.returnResource(jedis);
    		shardedJedisPool.returnResource(shardedJedis);
    	}
    
    	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.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"));
    	        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"));
    	        // 移除某个key的生存时间
    	        System.out.println("移除key001的生存时间:"+jedis.persist("key001"));
    	        System.out.println("查看key001的剩余生存时间:"+jedis.ttl("key001"));
    	        // 查看key所储存的值的类型
    	        System.out.println("查看key所储存的值的类型:"+jedis.type("key001"));
    	        /*
    	         * 一些其它方法:1、改动键名:jedis.rename("key6", "key0");
    	         *             2、将当前db的key移动到给定的db其中:jedis.move("foo", 1)
    	         */
    	    
    	}
    	private void StringOperate() 
        {  
            System.out.println("======================String_1=========================="); 
            // 清空数据 
            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"));  
            System.out.println("获取key003键相应的值:"+jedis.get("key003"));
            
            System.out.println("=============改=============");
            //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("=============增,删,查(多个)=============");
            /** 
             * mset,mget同一时候新增,改动。查询多个键值对 
             * 等价于:
             * jedis.set("name","ssss"); 
             * jedis.set("jarorwar","xxxx"); 
             */  
            System.out.println("一次性新增key201,key202,key203,key204及其相应值:"+jedis.mset("key201","value201",
                            "key202","value202","key203","value203","key204","value204"));  
            System.out.println("一次性获取key201,key202,key203,key204各自相应的值:"+
                            jedis.mget("key201","key202","key203","key204"));
            System.out.println("一次性删除key201,key202:"+jedis.del(new String[]{"key201", "key202"}));
            System.out.println("一次性获取key201,key202,key203,key204各自相应的值:"+
                    jedis.mget("key201","key202","key203","key204")); 
            System.out.println();
                    
                
            //jedis具备的功能shardedJedis中也可直接使用。以下測试一些前面没用过的方法
            System.out.println("======================String_2=========================="); 
            // 清空数据 
            System.out.println("清空库中全部数据:"+jedis.flushDB());       
           
            System.out.println("=============新增键值对时防止覆盖原先值=============");
            System.out.println("原先key301不存在时,新增key301:"+shardedJedis.setnx("key301", "value301"));
            System.out.println("原先key302不存在时,新增key302:"+shardedJedis.setnx("key302", "value302"));
            System.out.println("当key302存在时,尝试新增key302:"+shardedJedis.setnx("key302", "value302_new"));
            System.out.println("获取key301相应的值:"+shardedJedis.get("key301"));
            System.out.println("获取key302相应的值:"+shardedJedis.get("key302"));
            
            System.out.println("=============超过有效期键值对被删除=============");
            // 设置key的有效期,并存储数据 
            System.out.println("新增key303。并指定过期时间为2秒"+shardedJedis.setex("key303", 2, "key303-2second")); 
            System.out.println("获取key303相应的值:"+shardedJedis.get("key303")); 
            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));         
        }
    
    	 
    
    	private void ListOperate() {
    
    	}
    
    	private void SetOperate() {
    
    	}
    
    	private void SortedSetOperate() {
    
    	}
    
    	private void HashOperate() {
    
    	}
    	
    	
    	public static void main(String[]args){
    		  new RedisClient().show(); 
    	}
    }
    


  • 相关阅读:
    PHP数字签名算法
    PHP日期相关类
    浏览器常见bug及解决办法
    PHPer整理的前端开发知识
    小程序之轮播图(2020.4.13更新)
    Android APK反编译 apktool使用教程
    秒懂-单列布局水平居中布局
    一句话搞定-phpStudy安装yaf扩展
    Git的简单安装
    人人都能读懂的css3 3d小demo
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/7256571.html
Copyright © 2011-2022 走看看