Redis入门

不打扰是莪最后的温柔 提交于 2019-11-29 08:01:56

官网下不了,这里找了这个地址,版本比较老

下载驱动,搜索jedis

参考

基本操作


public class RedisTest {

	public static void main(String[] args) {
	
		/**
		 * 地址 端口 超时时间
		 */
		Jedis jedis = new Jedis("localhost", 6379, 100000);
		/**
		 * 测试是否通 
		 */
		System.out.println("服务正在运行: "+jedis.ping());
		
		/** 
		 * set:设置key值 
		 * get:获取key值 
		 * del:删除key 
		 * append:追加key值 
		 * incr:key值自增1 
		 * incrBy:key值自增,指定步长 
		 * decr:key值自减1 
		 * decrBy:key值自减,指定步长 
		 * expire:为key设置过期时间(秒数) 
		 * setex:设置key值,可指定存活时间(秒数) 
		 * setnx:设置key值。key不存在才会设置,如果key存在则回滚操作,结果返回0,表示没有设置成功 
		 * ttl:time to live,获取key的存活时间(秒),-1表示永不过期 
		 * persist:去掉key的expire设置,不再有失效时间 
		 */  
		jedis.set("first", "Hello World!");
		System.out.println(jedis.get("first"));
		
		/** 
		 * LIST
		 * 可以实现队列的功能 
		 * lpush: 从列表头部插入多个元素 
		 * rpush:从列表尾部插入多个元素 
		 * llen:返回列表中的元素的数量 
		 * lpop:从列表头部移除并返回list的第一个元素 
		 * lrem:从头部开始找,删除n个值 
		 * lrange:从列表中获取指定范围的子集 
		 */
		jedis.del("list");
		jedis.lpush("list", "1","2","3");
		jedis.lpush("list", "4");
		Long count=jedis.llen("list");
		List<String> list=jedis.lrange("list", 0, count);
		System.out.println(list.toString());
		
		
		/** 
		 * sadd:往set对象中添加一个值 
		 * smembers:取得set中所有的值 
		 * sismember:判断一个值是否在set中存在 
		 * srandmember:从set中随机取得一个值 
		 * srem:从set中删除一个值 
		 * scard:返回set的item个数 
		 */
		jedis.del("set");
		jedis.sadd("set", "1","2","3");
		jedis.sadd("set", "4");
		jedis.sadd("set", "4");
		Set<String> set=jedis.smembers("set");
		System.out.println(set.toString());
		
		/** 
		 * hmset:设置key值,值类型为map对象 
		 * type:返回key值的类型,可能值有none, string, hash, set, list, zset 
		 * hkeys:获取所有key 
		 * hvals:获取所有key对应的值 
		 * hmget:一次性获取多个field的值 
		 * hexists:判断field是否存在 
		 * hset:设置field的值 
		 * hgetAll:获取全部内容 
		 * hget:获取field的值 
		 * hdel:删除field 
		 * hincrBy:field值自增1 
		 * hlen:计算field的数目 
		 * hsetnx:设置key值。field不存在才会设置,如果field存在则回滚操作,结果返回0,表示没有设置成功。可以用来实现分布式锁 
		 */ 
		 jedis.del("user");  
	      
		    Map<String, String> map = new HashMap<String, String>();  
		    map.put("name", "cjm");  
		    map.put("age", "33");  
		    map.put("qq", "123456");  
		      
		    jedis.hmset("user", map);  
		    System.out.println("type: " + jedis.type("user"));   
		      
		    System.out.println("hkeys: " + jedis.hkeys("user"));   
		    System.out.println("hvals: " + jedis.hvals("user"));  
		      
		    System.out.println("hmget: " + jedis.hmget("user", "name", "age"));   
		    System.out.println("hexists: " + jedis.hexists("user", "name"));  
		      
		    jedis.hset("user", "pwd", "123");   
		    System.out.println("hgetAll: " + jedis.hgetAll("user"));   
		    System.out.println("hget: " + jedis.hget("user", "pwd"));   
		    jedis.hdel("user", "qq");   
		    System.out.println("hincrBy: " + jedis.hincrBy("user", "count", 1));   
		    System.out.println("hlen: " + jedis.hlen("user"));   
		      
		    Long r = jedis.hsetnx("user", "pwd2", "456");   
		    System.out.println(r); 
	}
}

消息订阅、

订阅
public class Consumer {

	public static void main(String[] args) {

		/**
		 * 地址 端口 超时时间
		 */
		Jedis jedis = new Jedis("localhost", 6379, 100000);
		 /**
	     * 消息订阅
	     */
	    JedisPubSub jps=new JedisPubSub() {
	    	public void onPMessage(String pattern, String channel, String message) {
	    		System.out.println("onPMessage()," + pattern + "=" + channel + "="
	    				+ message);
	    	}
	     
	    	public void onMessage(String channel, String message) {
	    		System.out.println("onMessage()," + channel + "=" + message);
	    	}
	    };
	    
	    jedis.psubscribe(jps, "test*");
	}
}

//发布
 jedis.publish("test1", "message from test1");
 jedis.publish("test2", "message from test2");
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!