1. 程式人生 > >redis的基本儲存結構的簡單使用

redis的基本儲存結構的簡單使用

最近看了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、獲取配置資訊,工具類裝載配置檔案

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);
	}
	
}
3、讀取配置檔案中的值並初始化連線池連線
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;
	}
4、連線操作,先啟動redis服務
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,如下;