Redis客戶端實作
Java實作Redis基本資料型別的操作
public class JedisTest {
public static void main(String[] args) {
jedisString();
jedisHash();
jedisList();
jedisSet();
jedisSortedSet();
}
/**
* 一般用法
*/
public static void jedisString(){
Jedis jedis = new Jedis("localhost", 6379);
jedis.auth("123456");
jedis.set("username","lifly");
String username = jedis.get("username");
System.out.println(username);
jedis.close();
}
/**
* jedis操作hash
*/
public static void jedisHash(){
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.auth("123456");
jedis.hset("user","name","lifly");
jedis.hset("user","age","12");
//獲取hash
String name = jedis.hget("user", "name");
System.out.println(name);
jedis.close();
}
/**
* jedis操作list
*/
public static void jedisList(){
//創建連接
Jedis jedis = new Jedis("localhost", 6379);
jedis.auth("123456");
//存盤資料
jedis.lpush("mylist","a","b","c");
jedis.rpush("mylist","1","2","3");
//獲取資料
List<String> mylist = jedis.lrange("mylist", 0, -1);
System.out.println(mylist);
//獲取左邊單條資料
String lmylist = jedis.lpop("mylist");
System.out.println(lmylist);
//獲取右邊單條資料
String rmylist = jedis.rpop("mylist");
System.out.println(rmylist);
//關閉連接
jedis.close();
}
/**
* jedis操作set集合
*/
public static void jedisSet(){
Jedis jedis = new Jedis("localhost", 6379);
jedis.auth("123456");
//存盤資料
jedis.sadd("myset","java","python","C++");
//獲取資料
Set<String> myset = jedis.smembers("myset");
System.out.println(myset);
//關閉連接
jedis.close();
}
/**
* jedis操作sortedset有序集合
*/
public static void jedisSortedSet(){
Jedis jedis = new Jedis("localhost", 6379);
jedis.auth("123456");
//存盤資料
jedis.zadd("mysortedset",100,"very nice");
jedis.zadd("mysortedset",90,"very beautiful");
jedis.zadd("mysortedset",80,"very good");
//獲取資料
Set<String> mysortedset = jedis.zrange("mysortedset", 0, -1);
System.out.println(mysortedset);
//關閉連接
jedis.close();
}
}
硬編碼實作Redis連接池工具類
public class JedisUtil {
private static JedisPool jedisPool;
static {
//讀取組態檔
InputStream is = JedisUtil.class.getClassLoader().getResourceAsStream("application.yml");
//創建Properties物件
Properties properties = new Properties();
//加載組態檔
try {
properties.load(is);
} catch (IOException e) {
e.printStackTrace();
}
//獲取資料,設定到jedisPoolConfig中
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(Integer.parseInt(properties.getProperty("max-Total")));
jedisPoolConfig.setMaxIdle(Integer.parseInt(properties.getProperty("max-idle")));
//初始化JedisPool
jedisPool = new JedisPool(jedisPoolConfig, properties.getProperty("host"), Integer.parseInt(properties.getProperty("port")));
}
public static Jedis getJedisPool(){
return jedisPool.getResource();
}
}
測驗
public class JedisUtilTest {
public static void main(String[] args) {
Jedis jedis = JedisUtil.getJedisPool();
jedis.auth("123456");
jedis.set("username","lifly");
String username = jedis.get("username");
System.out.println(username);
jedis.close();
}
}
SpringBoot實作Redis連接池
匯入坐標
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
<dependencies>
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
</dependencies>
組態檔
redis:
pool:
# redis服務器地址(默認為loaclhost)
host: localhost
# redis埠(默認為6379)
port: 6379
# redis訪問密碼(默認為空)
password: 123456
# redis連接超時時間(單位毫秒)
timeout: 0
# redis連接池配置
config:
# 最大可用連接數(默認為8,負數表示無限)
max-total: 8
# 最大空閑連接數(默認為8,負數表示無限)
max-idle: 8
撰寫Redis連接池配置類
@SpringBootConfiguration
//@PropertySource(value = {"classpath:application.yml"})
public class RedisConfig {
@Value("${redis.pool.host}")
private String host;
@Value("${redis.pool.port}")
private int port;
@Value("${redis.pool.password}")
private String password;
@Value("${redis.pool.timeout}")
private int timeout;
@Value("${redis.pool.config.max-total}")
private int maxTotal;
@Value("${redis.pool.config.max-idle}")
private int maxIdle;
public JedisPoolConfig jedisPoolConfig(){
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(maxTotal);
jedisPoolConfig.setMaxIdle(maxIdle);
return jedisPoolConfig;
}
@Bean
public JedisPool getJedisPool(){
JedisPoolConfig jedisPoolConfig = jedisPoolConfig();
JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, password);
return jedisPool;
}
}
測驗
@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisTest {
@Autowired
private JedisPool jedisPool;
@Test
public void test(){
Jedis jedis = jedisPool.getResource();
jedis.set("username","lifly");
String username = jedis.get("username");
System.out.println(username);
jedis.close();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/293342.html
標籤:其他
