基于redis 内存数据库简单使用

ecplise中使用内存数据的客端户,前提要准备要下载两个jar

 

commons-pool2-2.0.jar 

jedis-2.4.2.jar 

前提准备做好了,那我们就开启redis的服务,打开一个命令窗口输入如下命令:redis-server  redis-server  redis根目\redis.conf

 基于redis 内存数据库简单使用_第1张图片

 

服务器已经开启了,注意端号是6377

 

 

2.eclipse 创建一个项目,把redist需要的包导入项目中

 基于redis 内存数据库简单使用_第2张图片

 

3.写一个Jedis工具类

public class JedisUtil {

 

private static  String  HOST="127.0.0.1";            //本机地址

private static  Integer PORT=6379;                   //服务端口

private static  JedisPoolConfig config;              //连接池的配置对象

private static  JedisPool  pool;                     //连接池对象

static{

         config = new JedisPoolConfig();

         config.setMaxIdle(1024*10);                     //设置内存大小

         pool = new JedisPool(config,HOST);

}

/**

 * 

 * @return  从连接池里获取一个Jedis对象

 */

public static  Jedis  getPoolJedis(){

return  pool.getResource();

}

/**

 * 手动把Jedis对象,回放到连接池里

 */

public static void returnPoolJedis(Jedis jedis){

pool.returnResource(jedis);

}

/**

 * @return  直接创建一个Jedis连接

 */

public static Jedis getJedis(){

return new Jedis(HOSTPORT);

}

}

4.写一个客户端类操作jedis

public class Client {

 

public static void main(String[] args) {

//simpleSet();

mSet();

}

 

private static void mSet() {

//注意 如果使用 JedisUtil.getJedis(); 是直接创建一个jredis对象,所以不受连接池管理,所以不能回放到连接池里

Jedis jedis = JedisUtil.getPoolJedis();

//设置值多个值

jedis.mset("userName","user1","pwd","123");

//取值

List<String> list = jedis.mget("userName","pwd");

for (String string : list) {

System.out.println(string);

}

jedis.flushDB();

JedisUtil.returnPoolJedis(jedis);

}

 

private static void simpleSet() {

Jedis jedis = JedisUtil.getPoolJedis();

//设置值

jedis.set("userName""user1");

//取值

System.out.println("userName:"+jedis.get("userName"));

//清空内存数据库

jedis.flushDB();

JedisUtil.returnPoolJedis(jedis);

}

 后补集合的简单操作

	/**
	 * hash 操作
	 */
	private static void hashSet(){
		Jedis jedis = JedisUtil.getPoolJedis();
		//set,设置指定的哈希表里的某个域的值
		jedis.hset("key1", "user1", "123");
		jedis.hset("key2", "user2", "456");
		jedis.hset("key3", "user3", "789");
		//get,取出指定哈希表里的某个域的值
		System.out.println(jedis.hget("key1", "user1"));
	}
	
	/**
	 * hash map操作
	 */
	public static void mapSet(){
		Jedis jedis = JedisUtil.getPoolJedis();
		Map<String,String> map=new HashMap<String,String>();
		map.put("user1", "123");
		map.put("user2", "456");
		map.put("user3", "789");
		//将一个map集合的键/值,设置到哈希表里。
		jedis.hmset("map", map);
	    //取出哈希表域的值,也就map的key
		//System.out.println(jedis.hmget("map", "user3"));
		//取出哈希表多个域的值
		List<String> list = jedis.hmget("map", "user1","user2","user3");
		for (String string : list) {
			System.out.println("值:"+string);
		}
	}
	
	
	/**
	 * 返回哈希表key中,所有的域与值
	 */
	public static void getAll(){
		Jedis jedis = JedisUtil.getPoolJedis();
		Map<String,String> map = jedis.hgetAll("map");
		Set<String> keySet = map.keySet();
		Iterator<String> i = keySet.iterator();
		while(i.hasNext()){
			System.out.println(map.get(i.next()));
		}
		//jedis.del(key) key field [field ...]删除哈希表key中的一个或多个指定域。 
		//jedis.hlen(key) key 返回哈希表key中域的数量。 
		//jedis.hexists(key, field) key field查看哈希表key中,给定域field是否存在。 
		//jedis.hincrByFloat(key, field, increment) key field increment为哈希表key中的域field的值加上增量increment。 
		//jedis.hkeys(key) key返回哈希表key中的所有域。 
		//jedis.hvals(key) key返回哈希表key中的所有值。 
	} 
	
	
	/**
	 * list操作
	 */
	public static  void list(){
		Jedis jedis = JedisUtil.getPoolJedis();
		//设置值,是以栈的存储方式,先进后出。jedis.lpush(key, strings) strings可以是设置多个值。
		jedis.lpush("list","index1");
		jedis.lpush("list","index2");
		jedis.lpush("list","index3");
		
		//取值,根据开始下标与结束下标的范围取值
		List<String> list = jedis.lrange("list", 0,2);
		for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));
		}
		//jedis.llen(key) key 返回列表key的长度
		//jedis.lrem(key, count, value) 根据参数count的值,移除列表中与参数value相等的值
	}
	
	
	
	/**
	 * set操作
	 */
	public static void set(){
		Jedis jedis = JedisUtil.getPoolJedis();
		//设置值
		jedis.sadd("set", "s1","s2","s3","s4");
		//移除某个元素,可以移出一个,也可以移出多个。
		jedis.srem("set", "s1","s2");
		//获出所有的元素
		Set<String> set = jedis.smembers("set");
		Iterator<String> i = set.iterator();
		while(i.hasNext())
			System.out.println(i.next());
	}



}

 

现在可以在redist客户端对数据进行取值

 打开一个命令窗口,输入命令 redis-cli 开启客户端,原后进行赋值

 基于redis 内存数据库简单使用_第3张图片

你可能感兴趣的:(jedis)