初学Jedis
0基本概念
Jedis: 一款java操作redis數據庫的工具.
?? ??? ?* 使用步驟:
?? ??? ??? ?1. 下載jedis的jar包
?? ??? ??? ?2. 使用
?? ??? ??? ??? ?//1. 獲取連接
? ? ? ? ?? ??? ?Jedis jedis = new Jedis("localhost",6379);
? ? ? ??? ??? ??? ?//2. 操作
? ? ? ??? ??? ??? ?jedis.set("username","zhangsan");
? ? ? ? ?? ??? ?//3. 關閉連接
? ? ? ? ?? ??? ?jedis.close();
一.?Jedis操作各種redis中的數據結構
1.1 字符串類型 string
setget//1. 獲取連接Jedis jedis = new Jedis();//如果使用空參構造,默認值 "localhost",6379端口//2. 操作//存儲jedis.set("username","zhangsan");//獲取String username = jedis.get("username");System.out.println(username);//可以使用setex()方法存儲可以指定過期時間的 key valuejedis.setex("activecode",20,"hehe");//將activecode:hehe鍵值對存入redis,并且20秒后自動刪除該鍵值對//3. 關閉連接jedis.close();1.2 哈希類型 hash : map格式 ?
? ?hsethgethgetAll//1. 獲取連接Jedis jedis = new Jedis();//如果使用空參構造,默認值 "localhost",6379端口//2. 操作// 存儲hashjedis.hset("user","name","lisi");jedis.hset("user","age","23");jedis.hset("user","gender","female");// 獲取hashString name = jedis.hget("user", "name");System.out.println(name);// 獲取hash的所有map中的數據Map<String, String> user = jedis.hgetAll("user");// keysetSet<String> keySet = user.keySet();for (String key : keySet) {//獲取valueString value = user.get(key);System.out.println(key + ":" + value);}//3. 關閉連接jedis.close();1.3列表類型 list : linkedlist格式。支持重復元素
lpush / rpushlpop / rpoplrange start end : 范圍獲取//1. 獲取連接Jedis jedis = new Jedis();//如果使用空參構造,默認值 "localhost",6379端口//2. 操作// list 存儲jedis.lpush("mylist","a","b","c");//從左邊存jedis.rpush("mylist","a","b","c");//從右邊存// list 范圍獲取List<String> mylist = jedis.lrange("mylist", 0, -1);System.out.println(mylist);// list 彈出String element1 = jedis.lpop("mylist");//cSystem.out.println(element1);String element2 = jedis.rpop("mylist");//cSystem.out.println(element2);// list 范圍獲取List<String> mylist2 = jedis.lrange("mylist", 0, -1);System.out.println(mylist2);//3. 關閉連接jedis.close();1.4集合類型 set ?: 不允許重復元素
saddsmembers:獲取所有元素//1. 獲取連接Jedis jedis = new Jedis();//如果使用空參構造,默認值 "localhost",6379端口//2. 操作// set 存儲jedis.sadd("myset","java","php","c++");// set 獲取Set<String> myset = jedis.smembers("myset");System.out.println(myset);//3. 關閉連接jedis.close();1.5有序集合類型 sortedset:不允許重復元素,且元素有順序
zaddzrange//1. 獲取連接Jedis jedis = new Jedis();//如果使用空參構造,默認值 "localhost",6379端口//2. 操作// sortedset 存儲jedis.zadd("mysortedset",3,"亞瑟");jedis.zadd("mysortedset",30,"后裔");jedis.zadd("mysortedset",55,"孫悟空");// sortedset 獲取Set<String> mysortedset = jedis.zrange("mysortedset", 0, -1);System.out.println(mysortedset);//3. 關閉連接jedis.close();二.jedis連接池: JedisPool
* 使用:
?? ??? ??? ??? ?1. 創建JedisPool連接池對象
?? ??? ??? ??? ?2. 調用方法 getResource()方法獲取Jedis連接
?? ??? ??? ??? ??? ?//0.創建一個配置對象
?? ??? ??? ? ? ? ? ?JedisPoolConfig config = new JedisPoolConfig();
?? ??? ??? ? ? ? ? ?config.setMaxTotal(50);
?? ??? ??? ? ? ? ? ?config.setMaxIdle(10);
?? ??? ??? ?
?? ??? ??? ? ? ? ? ?//1.創建Jedis連接池對象
?? ??? ??? ? ? ? ? ?JedisPool jedisPool = new JedisPool(config,"localhost",6379);
?? ??? ??? ?
?? ??? ??? ? ? ? ? ?//2.獲取連接
?? ??? ??? ? ? ? ? ?Jedis jedis = jedisPool.getResource();
?? ??? ??? ? ? ? ? ?//3. 使用
?? ??? ??? ? ? ? ? ?jedis.set("hehe","heihei");
?? ??? ??? ?
?? ??? ??? ?
?? ??? ??? ? ? ? ? ?//4. 關閉 歸還到連接池中
?? ??? ??? ? ? ? ? ?jedis.close();
* 連接池工具類
public class JedisPoolUtils {private static JedisPool jedisPool;static{//讀取配置文件InputStream is = JedisPoolUtils.class.getClassLoader().getResourceAsStream("jedis.properties");//創建Properties對象Properties pro = new Properties();//關聯文件try {pro.load(is);} catch (IOException e) {e.printStackTrace();}//獲取數據,設置到JedisPoolConfig中JedisPoolConfig config = new JedisPoolConfig();config.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal")));config.setMaxIdle(Integer.parseInt(pro.getProperty("maxIdle")));//初始化JedisPooljedisPool = new JedisPool(config,pro.getProperty("host"),Integer.parseInt(pro.getProperty("port")));}/*** 獲取連接方法*/public static Jedis getJedis(){return jedisPool.getResource();}}三.案例
案例需求:
?? ??? ?1. 提供index.html頁面,頁面中有一個省份 下拉列表
?? ??? ?2. 當 頁面加載完成后 發送ajax請求,加載所有省份
?? ?* 注意:使用redis緩存一些不經常發生變化的數據。
?? ??? ?* 數據庫的數據一旦發生改變,則需要更新緩存。
?? ??? ??? ?* 數據庫的表執行 增刪改的相關操作,需要將redis緩存數據情況,再次存入
?? ??? ??? ?* 在service對應的增刪改方法中,將redis數據刪除。
總結
- 上一篇: 二叉树的的前序遍历和后序遍历(题型变种更
- 下一篇: 混合文件下分离xml文件和jpg文件