在本機(jī)電腦上安裝了redis服務(wù)岂昭,創(chuàng)建本地連接對(duì)幾個(gè)基本存儲(chǔ)結(jié)構(gòu)做一些簡(jiǎn)單的使用豺总。redis存儲(chǔ)類型包括String车伞、List、Set喻喳、Hash和有序集合五種結(jié)構(gòu)方式另玖。
一、安裝redis服務(wù)
本地直接簡(jiǎn)單的安裝了redis服務(wù)表伦,在官網(wǎng)去下載對(duì)應(yīng)你的版本谦去,點(diǎn)擊運(yùn)行redis-server.exe,如圖蹦哼,表示服務(wù)已經(jīng)啟動(dòng)鳄哭。redis本身不能后臺(tái)自動(dòng)啟動(dòng),需要手動(dòng)啟動(dòng)服務(wù)操作纲熏。
二妆丘、測(cè)試連接
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("獲取參數(shù)出錯(cuò)!", 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"));//本機(jī)默認(rèn)127.0.0.1
// String password = PropertiesUtils.getProperty("pwd");//redis默認(rèn)無(wú)密碼
JedisPoolConfig config = new JedisPoolConfig();
//最大連接數(shù)
config.setMaxTotal(Integer.valueOf(PropertiesUtils.getProperty("maxTotal")));
//最大空閑連接數(shù)
config.setMaxIdle(Integer.valueOf(PropertiesUtils.getProperty("maxIdle")));
//最小空閑連接數(shù)
config.setMinIdle(Integer.valueOf(PropertiesUtils.getProperty("minIdle")));
//獲取連接時(shí)最大等待的毫秒數(shù)
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宣脉、連接操作,先啟動(dòng)redis服務(wù)
public static void main(String[] args) {
Jedis jedis = JedisPoolUtils.getJedisConnection();
System.out.println("連接成功剔氏!" + jedis.ping());
}
控制臺(tái)輸出:連接成功塑猖!PONG
此時(shí)可以通過(guò)配置連接redis服務(wù)了竹祷。
三、存儲(chǔ)結(jié)構(gòu)的簡(jiǎn)單使用
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令花、分別對(duì)各種結(jié)構(gòu)進(jìn)行賦值
//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、查看剛才做的存儲(chǔ)的結(jié)果凉倚,采用命令行的方式展示兼都,先打開命令窗口,如下連接上本機(jī):
根據(jù)命令獲取對(duì)應(yīng)存儲(chǔ)結(jié)構(gòu)的value值稽寒,依次是String扮碧、List、Set杏糙、Hash四個(gè)的value慎王,如下;