《Java之redis基礎(chǔ)用法》要點(diǎn):
本文介紹了Java之redis基礎(chǔ)用法,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
起首,Redis是一個(gè)Nosql數(shù)據(jù)庫.
為了辦理高并發(fā)、高可擴(kuò)展、高可用、大數(shù)據(jù)存儲(chǔ)問題而產(chǎn)生的數(shù)據(jù)庫辦理方案,就是NoSql數(shù)據(jù)庫.
Redis的作用是緩存.以key—value存儲(chǔ).
Redis下載
官網(wǎng)地址:http://redis.io/
下載地址 :https://redis.io/download
Redis的安裝
安裝情況一般為L(zhǎng)inux ,我以這個(gè)為演示:
因?yàn)閞edis是c語言開發(fā)的,所以得安裝gcc情況.
yum install gcc-c++
把redis-3.0.0.tar.gz放到服務(wù)器中,這步就不演示了,我用的是xftp5
第一步:解緊縮
tar -zxf redis-3.0.0.tar.gz
第二部:編譯(C語言開發(fā)的編譯)
進(jìn)入到redis-3.0.0目次 make
第一步:安裝
make install PREFIX=/usr/local/redis 安裝到redis目次.
PREFIX參數(shù)指定redis的安裝目次.一般軟件安裝到/usr目次下
二、redis的啟動(dòng).
將redis源碼包中的redis.conf設(shè)置裝備擺設(shè)文件復(fù)制到/usr/local/redis/bin/下
(1)cd /root/redis-3.0.0
cp redis.conf /usr/local/redis/bin/
(2)第二步:改動(dòng)redis.conf,將daemonize由no改為yes
(3)啟動(dòng)敕令:在redis根目錄 ./redis-server redis.conf
(4)封閉命令:./redis-cli shutdown
銜接reids------- redis-cli
./redis-cli
默認(rèn)銜接localhost運(yùn)行在6379端口的redis服務(wù).
./redis-cli -h 192.168.1.103 -p 6379
-h:銜接的服務(wù)器的地址
-p:服務(wù)的端標(biāo)語
封閉redis連接:./redis-cli shutdown
Redis的持久化
Redis的所有數(shù)據(jù)都是保留到內(nèi)存中的.
Rdb:快照形式,定期把內(nèi)存中當(dāng)前時(shí)刻的數(shù)據(jù)保留到磁盤.Redis默認(rèn)支持的持久化方案.
aof形式:append only file.把所有對(duì)redis數(shù)據(jù)庫操作的命令,增刪改操作的命令.保留到文件中.
在redis.conf設(shè)置裝備擺設(shè)文件中設(shè)置裝備擺設(shè)
這樣redis單機(jī)版就配好了,redis集群我就不說了,打字說不清晰.
Redis中存儲(chǔ)數(shù)據(jù)是通過key-value存儲(chǔ)的,對(duì)付value的類型有以下幾種:
字符串
Hash類型
List
Set
SortedSet(zset)
各類數(shù)據(jù)類型的演示就算了,太多了.
Java中銜接redis
要連接服務(wù)器中的redis,必要使用redis提供的一個(gè)jar包;
接上去上代碼:
public void testJedisPool() throws Exception {
// 第一步:創(chuàng)建一個(gè)JedisPool對(duì)象.必要指定服務(wù)端的ip及端口.
JedisPool jedisPool = new JedisPool("192.168.1.103", 6379);
// 第二步:從JedisPool中得到Jedis對(duì)象.
Jedis jedis = jedisPool.getResource();
// 第三步:使用Jedis操作redis服務(wù)器.
jedis.set("jedis", "test"); 存儲(chǔ)jedis為key,test為value的一個(gè)數(shù)據(jù)
String result = jedis.get("jedis"); 獲取key為jedis的值
System.out.println(result);
// 第四步:操作完畢后封閉jedis對(duì)象,連接池回收資源.
jedis.close();
// 第五步:封閉JedisPool對(duì)象.
jedisPool.close();
}
Spring整合jedis
常用的操作redis的辦法提取出一個(gè)接口,實(shí)現(xiàn)單機(jī)版的實(shí)現(xiàn)類:
public interface JedisClient {
String set(String key, String value);
String get(String key);
Boolean exists(String key);
Long expire(String key, int seconds);
Long ttl(String key);
Long incr(String key);
Long hset(String key, String field, String value);
String hget(String key, String field);
Long hdel(String key, String... field);
}
單機(jī)版實(shí)現(xiàn)類
public class JedisClientPool implements JedisClient {
@Autowired
private JedisPool jedisPool; //引入jedispool銜接池
@Override
public String set(String key, String value) {
Jedis jedis = jedisPool.getResource();
String result = jedis.set(key, value);
jedis.close();
return result;
}
@Override
public String get(String key) {
Jedis jedis = jedisPool.getResource();
String result = jedis.get(key);
jedis.close();
return result;
}
@Override
public Boolean exists(String key) {
Jedis jedis = jedisPool.getResource();
Boolean result = jedis.exists(key);
jedis.close();
return result;
}
@Override
public Long expire(String key, int seconds) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.expire(key, seconds);
jedis.close();
return result;
}
@Override
public Long ttl(String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.ttl(key);
jedis.close();
return result;
}
@Override
public Long incr(String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.incr(key);
jedis.close();
return result;
}
@Override
public Long hset(String key, String field, String value) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.hset(key, field, value);
jedis.close();
return result;
}
@Override
public String hget(String key, String field) {
Jedis jedis = jedisPool.getResource();
String result = jedis.hget(key, field);
jedis.close();
return result;
}
@Override
public Long hdel(String key, String... field) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.hdel(key, field);
jedis.close();
return result;
}
}
設(shè)置裝備擺設(shè):applicationContext-redis.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans4.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context4.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop4.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx4.2.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util4.2.xsd">
<!-- 配置單機(jī)版的銜接 -->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="192.168.1.103"></constructor-arg>
<constructor-arg name="port" value="6379"></constructor-arg>
</bean>
<bean id="jedisClientPool" class="com.test.jedisClientPool "/>
</beans>
Spring整合jedis測(cè)試:
@Test
public void testJedisClient() throws Exception {
//初始化Spring容器
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath: applicationContext-*.xml");
//自在器中獲得JedisClient對(duì)象
JedisClient jedisClient = applicationContext.getBean(JedisClient.class);
jedisClient.set("test", "test");
String result = jedisClient.get("test");
System.out.println(result);
}
便是個(gè)這了 ,redis太多,在這里不好說清.
接上去附圖:
維易PHP培訓(xùn)學(xué)院每天發(fā)布《Java之redis基礎(chǔ)用法》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/9222.html