在ecplise中使用內存數據的客端戶,前提要准備要下載兩個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,原后進行賦值

