国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java中使用Jedis操作Redis

2019-11-06 08:13:56
字體:
來源:轉載
供稿:網(wǎng)友

使用java操作Redis需要jedis-2.1.0.jar,下載地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip

如果需要使用Redis連接池的話,還需commons-pool-1.5.4.jar,下載地址:http://files.cnblogs.com/liuling/commons-pool-1.5.4.jar.zip

package com.test;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import org.junit.Before;import org.junit.Test;import redis.clients.jedis.Jedis;public class TestRedis {    PRivate Jedis jedis;         @Before    public void setup() {        //連接redis服務器,192.168.0.100:6379        jedis = new Jedis("192.168.0.100", 6379);        //權限認證        jedis.auth("admin");      }        /**     * redis存儲字符串     */    @Test    public void testString() {        //-----添加數(shù)據(jù)----------          jedis.set("name","xinxin");//向key-->name中放入了value-->xinxin          System.out.println(jedis.get("name"));//執(zhí)行結果:xinxin                  jedis.append("name", " is my lover"); //拼接        System.out.println(jedis.get("name"));                 jedis.del("name");  //刪除某個鍵        System.out.println(jedis.get("name"));        //設置多個鍵值對        jedis.mset("name","liuling","age","23","QQ","476777XXX");        jedis.incr("age"); //進行加1操作        System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-" + jedis.get("qq"));            }        /**     * redis操作Map     */    @Test    public void testMap() {        //-----添加數(shù)據(jù)----------          Map<String, String> map = new HashMap<String, String>();        map.put("name", "xinxin");        map.put("age", "22");        map.put("qq", "123456");        jedis.hmset("user",map);        //取出user中的name,執(zhí)行結果:[minxr]-->注意結果是一個泛型的List          //第一個參數(shù)是存入redis中map對象的key,后面跟的是放入map中的對象的key,后面的key可以跟多個,是可變參數(shù)          List<String> rsmap = jedis.hmget("user", "name", "age", "qq");        System.out.println(rsmap);            //刪除map中的某個鍵值          jedis.hdel("user","age");        System.out.println(jedis.hmget("user", "age")); //因為刪除了,所以返回的是null          System.out.println(jedis.hlen("user")); //返回key為user的鍵中存放的值的個數(shù)2         System.out.println(jedis.exists("user"));//是否存在key為user的記錄 返回true          System.out.println(jedis.hkeys("user"));//返回map對象中的所有key          System.out.println(jedis.hvals("user"));//返回map對象中的所有value           Iterator<String> iter=jedis.hkeys("user").iterator();          while (iter.hasNext()){              String key = iter.next();              System.out.println(key+":"+jedis.hmget("user",key));          }      }        /**      * jedis操作List      */      @Test      public void testList(){          //開始前,先移除所有的內(nèi)容          jedis.del("java framework");          System.out.println(jedis.lrange("java framework",0,-1));          //先向key java framework中存放三條數(shù)據(jù)          jedis.lpush("java framework","spring");          jedis.lpush("java framework","struts");          jedis.lpush("java framework","hibernate");          //再取出所有數(shù)據(jù)jedis.lrange是按范圍取出,          // 第一個是key,第二個是起始位置,第三個是結束位置,jedis.llen獲取長度 -1表示取得所有          System.out.println(jedis.lrange("java framework",0,-1));                  jedis.del("java framework");        jedis.rpush("java framework","spring");          jedis.rpush("java framework","struts");          jedis.rpush("java framework","hibernate");         System.out.println(jedis.lrange("java framework",0,-1));    }          /**      * jedis操作Set      */      @Test      public void testSet(){          //添加          jedis.sadd("user","liuling");          jedis.sadd("user","xinxin");          jedis.sadd("user","ling");          jedis.sadd("user","zhangxinxin");        jedis.sadd("user","who");          //移除noname          jedis.srem("user","who");          System.out.println(jedis.smembers("user"));//獲取所有加入的value          System.out.println(jedis.sismember("user", "who"));//判斷 who 是否是user集合的元素          System.out.println(jedis.srandmember("user"));          System.out.println(jedis.scard("user"));//返回集合的元素個數(shù)      }        @Test      public void test() throws InterruptedException {          //jedis 排序          //注意,此處的rpush和lpush是List的操作。是一個雙向鏈表(但從表現(xiàn)來看的)          jedis.del("a");//先清除數(shù)據(jù),再加入數(shù)據(jù)進行測試          jedis.rpush("a", "1");          jedis.lpush("a","6");          jedis.lpush("a","3");          jedis.lpush("a","9");          System.out.println(jedis.lrange("a",0,-1));// [9, 3, 6, 1]          System.out.println(jedis.sort("a")); //[1, 3, 6, 9]  //輸入排序后結果          System.out.println(jedis.lrange("a",0,-1));      }          @Test    public void testRedisPool() {        RedisUtil.getJedis().set("newname", "中文測試");        System.out.println(RedisUtil.getJedis().get("newname"));    }}

------------------------------------------------------------------------------Redis連接池:-----------------------------------------------------------------

package com.test;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;public final class RedisUtil {        //Redis服務器IP    private static String ADDR = "192.168.0.100";        //Redis的端口號    private static int PORT = 6379;        //訪問密碼    private static String AUTH = "admin";        //可用連接實例的最大數(shù)目,默認值為8;    //如果賦值為-1,則表示不限制;如果pool已經(jīng)分配了maxActive個jedis實例,則此時pool的狀態(tài)為exhausted(耗盡)。    private static int MAX_ACTIVE = 1024;        //控制一個pool最多有多少個狀態(tài)為idle(空閑的)的jedis實例,默認值也是8。    private static int MAX_IDLE = 200;        //等待可用連接的最大時間,單位毫秒,默認值為-1,表示永不超時。如果超過等待時間,則直接拋出JedisConnectionException;    private static int MAX_WAIT = 10000;        private static int TIMEOUT = 10000;        //在borrow一個jedis實例時,是否提前進行validate操作;如果為true,則得到的jedis實例均是可用的;    private static boolean TEST_ON_BORROW = true;        private static JedisPool jedisPool = null;        /**     * 初始化Redis連接池     */    static {        try {            JedisPoolConfig config = new JedisPoolConfig();            config.setMaxActive(MAX_ACTIVE);            config.setMaxIdle(MAX_IDLE);            config.setMaxWait(MAX_WAIT);            config.setTestOnBorrow(TEST_ON_BORROW);            jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH);        } catch (Exception e) {            e.printStackTrace();        }    }        /**     * 獲取Jedis實例     * @return     */    public synchronized static Jedis getJedis() {        try {            if (jedisPool != null) {                Jedis resource = jedisPool.getResource();                return resource;            } else {                return null;            }        } catch (Exception e) {            e.printStackTrace();            return null;        }    }        /**     * 釋放jedis資源     * @param jedis     */    public static void returnResource(final Jedis jedis) {        if (jedis != null) {            jedisPool.returnResource(jedis);        }    }}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 甘泉县| 江津市| 郧西县| 阳山县| 扎兰屯市| 丰城市| 康马县| 崇信县| 黔江区| 鲜城| 清水河县| 丰县| 仁怀市| 武定县| 丽江市| 宁远县| 平遥县| 随州市| 都兰县| 安西县| 克山县| 滨海县| 凯里市| 永善县| 筠连县| 皮山县| 自治县| 阿拉善右旗| 大城县| 丽水市| 霸州市| 雷山县| 双峰县| 中江县| 寿光市| 新安县| 县级市| 隆尧县| 新田县| 红原县| 竹山县|