redis的基本儲存結構的簡單使用
阿新 • • 發佈:2019-01-22
最近看了redis的,對redis的儲存結構有了個瞭解,它本身一個key-value形式的儲存方式,不需要和資料庫打交道,自己就是一個高效能的資料庫。儲存型別包括String、List、Set、Hash和有序集合五種結構方式。
在本機電腦上安裝了redis服務,建立本地連線對幾個基本儲存結構做一些簡單的使用。
一、安裝redis服務
本地直接簡單的安裝了redis服務,在官網去下載對應你的版本,點選執行redis-server.exe,如圖,表示服務已經啟動。redis本身不能後臺自動啟動,需要手動啟動服務操作。
二、測試連線
1、redis的配置資訊
host=127.0.0.1
port=6379
pwd=123456
maxTotal=200
maxIdle=30
minIdle=10
maxWaitMillis=10000
2、獲取配置資訊,工具類裝載配置檔案
3、讀取配置檔案中的值並初始化連線池連線public class PropertiesUtils { private static Properties properties; static { ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); try { InputStream is = classLoader.getResourceAsStream("redis.properties"); properties = new Properties(); properties.load(is); } catch (Exception e) { try { throw new Exception("獲取引數出錯!", e); } catch (Exception e1) { } } } /** * 獲取配置檔案中value */ public static String getProperty(String key) { return properties.getProperty(key); } }
4、連線操作,先啟動redis服務private static JedisPool pool; static { String host = PropertiesUtils.getProperty("host"); int port = Integer.valueOf(PropertiesUtils.getProperty("port"));//本機預設127.0.0.1 // String password = PropertiesUtils.getProperty("pwd");//redis預設無密碼 JedisPoolConfig config = new JedisPoolConfig(); //最大連線數 config.setMaxTotal(Integer.valueOf(PropertiesUtils.getProperty("maxTotal"))); //最大空閒連線數 config.setMaxIdle(Integer.valueOf(PropertiesUtils.getProperty("maxIdle"))); //最小空閒連線數 config.setMinIdle(Integer.valueOf(PropertiesUtils.getProperty("minIdle"))); //獲取連線時最大等待的毫秒數 config.setMaxWaitMillis(Integer.valueOf(PropertiesUtils.getProperty("maxWaitMillis"))); config.setTestOnBorrow(true); config.setTestOnReturn(true); config.setTestWhileIdle(true); config.setTimeBetweenEvictionRunsMillis(30000); config.setNumTestsPerEvictionRun(10); config.setMinEvictableIdleTimeMillis(60000); pool = new JedisPool(config, host, port); } /** * 獲取連線 */ public static Jedis getJedisConnection() { Jedis jedis = null; try { jedis = pool.getResource(); } catch (Exception e) { e.printStackTrace(); } return jedis; }
public static void main(String[] args) {
Jedis jedis = JedisPoolUtils.getJedisConnection();
System.out.println("連線成功!" + jedis.ping());
}
控制檯輸出:連線成功!PONG
此時可以通過配置連線redis服務了。
三、儲存結構的簡單使用
1、String、List、Set、Hash四種的新增
/**
* List方式新增
* @param jedis
* @param key
* @param list
*/
public static void typeOfList(Jedis jedis, String key, List<String> list){
if(list != null && list.size() > 0){
for (String str : list) {
jedis.lpush(key, str);
}
}
}
/**
* Set方式新增
* @param jedis
* @param key
* @param set
*/
public static void typeOfSet(Jedis jedis, String key, Set<String> set){
List<String> list = new ArrayList<String>(set);
if(list != null && list.size() > 0){
for (String str : list) {
jedis.sadd(key, str);
}
}
}
/**
* 字串方式新增
* @param jedis
* @param key
* @param value
*/
public static void typeOfStr(Jedis jedis, String key, String value){
jedis.set(key, value);
}
/**
* Hash方式
* @param jedis
* @param key
* @param map
*/
public static void typeOfHash(Jedis jedis, String key, Map<String, String> map){
jedis.hmset(key, map);
}
2、分別對各種結構進行賦值
//string方式
JedisPoolUtils.typeOfStr(jedis, "key1", "value1");
//set方式
Set<String> set = new HashSet<String>();
set.add("s1");
set.add("s2");
JedisPoolUtils.typeOfSet(jedis, "set1", set);
//list方式
List<String> list = new ArrayList<String>();
list.add("l1");
list.add("l2");
JedisPoolUtils.typeOfList(jedis, "list1", list);
//hash方式
Map<String, String> map = new HashMap<String, String>();
map.put("f1", "h1");
map.put("f2", "h2");
map.put("f3", "h3");
JedisPoolUtils.typeOfHash(jedis, "hash1", map);
3、檢視剛才做的儲存的結果,採用命令列的方式展示,先開啟命令視窗,如下連線上本機:根據命令獲取對應儲存結構的value值,依次是String、List、Set、Hash四個的value,如下;