基于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(HOST,?PORT);
}
}
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,原后進行賦值
?
轉載于:https://www.cnblogs.com/jzssuanfa/p/6791894.html
總結
以上是生活随笔為你收集整理的基于redis 内存数据库简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XML注释内容中不能出现“--”
- 下一篇: 通信之道-复变函数