上篇文章Redis數據類型以及基本操作你知道嗎?(三)給大家簡單介紹以及操作了一些Redis的基本數據類型,下面這篇文章,小生主要給大家簡單介紹以及操作一下Redis的Java API的流程和操作!!!
Redis的javaAPI操作
redis不僅可以通過命令行進行操作,同時redis也可以通過javaAPI進行操作,我們可以通過使用javaAPI來對redis數據庫當中的各種數據類型進行操作!
第一步:創建maven工程並導入jar包
<dependencies>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<!-- <verbal>true</verbal>-->
</configuration>
</plugin>
</plugins>
</build>
第二步:連接以及關閉redis客戶端
private JedisPool jedisPool;
private JedisPoolConfig config;
@BeforeTest
public void redisConnectionPool(){
//設置數據庫連接池
config = new JedisPoolConfig();
//設置最大空閒的數量
config.setMaxIdle(10);
//鏈接超時時間(最大等待的時間)
config.setMaxWaitMillis(3000);
//設置連接池的最大連接數
config.setMaxTotal(50);
//設置最小的空閒的數量
config.setMinIdle(5);
jedisPool = new JedisPool(config, "node01", 6379);
}
@AfterTest
public void closePool(){
//關閉redis客戶端
jedisPool.close();
}
第三步:redis的javaAPI操作
操作string類型數據
/**
* 添加string類型數據
*/
@Test
public void addStr(){
//獲取redis鏈接對象
Jedis resource = jedisPool.getResource();
//添加
resource.set("jediskey", "jedisvalue");
//查詢
String jediskey = resource.get("jediskey");
System.out.println(jediskey);
//修改
resource.set("jediskey","jedisvalueUpdate");
//刪除
resource.del("jediskey");
//實現整型數據的增長操作
resource.incr("jincr");
resource.incrBy("jincr",3);
String jincr = resource.get("jincr");
System.out.println(jincr);
resource.close();
}
操作hash列表類型數據
/**
* 操作hash類型數據
*/
@Test
public void hashOperate(){
//獲取redis鏈接對象
Jedis resource = jedisPool.getResource();
//添加數據
resource.hset("jhsetkey","jmapkey","jmapvalue");
resource.hset("jhsetkey","jmapkey2","jmapvalue2");
//獲取所有數據
Map<String, String> jhsetkey = resource.hgetAll("jhsetkey");
for (String s : jhsetkey.keySet()) {
System.out.println(s);
}
//修改數據
resource.hset("jhsetkey","jmapkey2","jmapvalueupdate2");
Map<String, String> jhsetkey2 = resource.hgetAll("jhsetkey");
for (String s : jhsetkey2.keySet()) {
System.out.println("修改數據打印"+s);
}
//刪除數據
resource.del("jhsetkey");
Set<String> jhsetkey1 = resource.keys("jhsetkey");
for (String result : jhsetkey1) {
System.out.println(result);
}
}
操作list類型數據
/**
* 操作list類型的數據
*/
@Test
public void listOperate(){
//獲取redis鏈接對象
Jedis resource = jedisPool.getResource();
//從左邊插入元素
resource.lpush("listkey","listvalue1","listvalue1","listvalue2");
//從右邊移除元素
resource.rpop("listkey");
//獲取所有值
List<String> listkey = resource.lrange("listkey", 0, -1);
for (String s : listkey) {
System.out.println(s);
}
resource.close();
}
操作set類型的數據
/**
* set類型數據操作
*/
@Test
public void setOperate(){
//獲取redis鏈接對象
Jedis resource = jedisPool.getResource();
//添加數據
resource.sadd("setkey", "setvalue1", "setvalue1", "setvalue2", "setvalue3");
//查詢數據
Set<String> setkey = resource.smembers("setkey");
for (String s : setkey) {
System.out.println(s);
}
//移除掉一個數據
resource.srem("setkey","setvalue3");
resource.close();
}