基於redis 內存數據庫簡單使用


ecplise中使用內存數據的客端戶,前提要准備要下載兩個jar

 

commons-pool2-2.0.jar 

jedis-2.4.2.jar 

前提准備做好了,那我們就開啟redis的服務,打開一個命令窗體輸入例如以下命令:redis-server  redis-server  redis根目\redis.conf

 

 

server已經開啟了,注意端號是6377

 

 

2.eclipse 創建一個項目。把redist須要的包導入項目中

 

 

3.寫一個Jedis工具類

public class JedisUtil {

 

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

private static  Integer PORT=6379;                   //服務port

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.寫一個client類操作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()); }




}

 

如今能夠在redistclient對數據進行取值

 打開一個命令窗體,輸入命令 redis-cli 開啟client,原后進行賦值

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM