Java連接redis的使用示例
創(chuàng)新互聯(lián)專注于淇縣網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供淇縣營銷型網(wǎng)站建設(shè),淇縣網(wǎng)站制作、淇縣網(wǎng)頁設(shè)計(jì)、淇縣網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造淇縣網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供淇縣網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
Redis是開源的key-value存儲(chǔ)工具,redis通常用來存儲(chǔ)結(jié)構(gòu)化的數(shù)據(jù),因?yàn)閞edis的key可以包含String、hash、listset和sorted
list。
Redisclient支持多種語言,包括:c、C++、C#、php、java、python、go等語言,根據(jù)自己的開發(fā)語言,選擇合適的redis
client版本類型即可。我是使用java語言開發(fā)的,針對(duì)java語言,redis
client也提供了多種客戶端支持,按照推薦類型依次是:Jedis、Redisson、JRedis、JDBC-Redis、RJC、redis-protocol、aredis、lettuce。前兩種類型是比較推薦的,我們采用了Redisson類型版本作為redisclient的使用。
Redisson版的redis可發(fā)工程搭建
1.
新建maven工程
2.
在pom.xml文件的dependencies節(jié)點(diǎn)下增加如下內(nèi)容:
dependency
groupIdorg.redisson/groupId
artifactIdredisson/artifactId
version1.0.2/version
/dependency
dependency
groupIdorg.slf4j/groupId
artifactIdslf4j-log4j12/artifactId
version1.7.7/version
/dependency
3.
保存pom.xml后,等eclispe工程構(gòu)建完成后即可進(jìn)行開發(fā)了
開發(fā)示例
下面是演示連接redis服務(wù)器、保存讀取concurrentMap對(duì)象、保存讀取set對(duì)象和保存讀取Queue對(duì)象的示例代碼,代碼比較簡單,這里就不再詳細(xì)講解了,代碼如下:
[java]
view
plaincopy
package
com.my.test.redis;
import
java.util.Queue;
import
java.util.Set;
import
java.util.concurrent.ConcurrentMap;
import
org.redisson.Config;
import
org.redisson.Redisson;
public
class
RedisExample
{
/**
*
@param
args
*/
public
static
void
main(String[]
args)
{
//
1.初始化
Config
config
=
new
Config();
config.setConnectionPoolSize(10);
config.addAddress("127.0.0.1:6379");
Redisson
redisson
=
Redisson.create(config);
System.out.println("reids連接成功...");
//
2.測試concurrentMap,put方法的時(shí)候就會(huì)同步到redis中
ConcurrentMapString,
Object
map
=
redisson.getMap("FirstMap");
map.put("wuguowei",
"男");
map.put("zhangsan",
"nan");
map.put("lisi",
"女");
ConcurrentMap
resultMap
=
redisson.getMap("FirstMap");
System.out.println("resultMap=="
+
resultMap.keySet());
//
2.測試Set集合
Set
mySet
=
redisson.getSet("MySet");
mySet.add("wuguowei");
mySet.add("lisi");
Set
resultSet
=
redisson.getSet("MySet");
System.out.println("resultSet==="
+
resultSet.size());
//3.測試Queue隊(duì)列
Queue
myQueue
=
redisson.getQueue("FirstQueue");
myQueue.add("wuguowei");
myQueue.add("lili");
myQueue.add("zhangsan");
myQueue.peek();
myQueue.poll();
Queue
resultQueue=redisson.getQueue("FirstQueue");
System.out.println("resultQueue==="+resultQueue);
//
關(guān)閉連接
redisson.shutdown();
}
}
public class Man {
//這里是對(duì)屬性的封裝,一個(gè)人的姓名,年齡,妻子都是這個(gè)對(duì)象(人)的私有屬性
private String name;
private int age;
private Woman wife;
//這里是對(duì)改人對(duì)外界提供方法的封裝,可以設(shè)置改男人的妻子,姓名,年齡也可以獲取改男人的姓名和年齡
public void setWife(Woman wife) {
this.wife = wife;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class Woman {
//同樣這里是屬性封裝
private String name;
private int age;
private Man husband;
//方法封裝
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Man getHusband() {
return husband;
}
public void setHusband(Man husband) {
this.husband = husband;
}
}
/**
* 仔細(xì)看就會(huì)發(fā)現(xiàn),Man類沒有提供getWife的方法,這是以為男人不想讓自己的妻子被外界訪問,
*
* 直接下來呢,就是封裝可以吧一個(gè)對(duì)象的屬性私有,而提供一些可以被外界訪問的屬性的方法,
*
* 比如說,name屬性,Man和Woman類都有相應(yīng)的get和set方法,外界都可以通過這些方法訪問和修改
*
* 同時(shí)對(duì)一些改對(duì)象不想讓外界訪問的屬性,就不提供其方法,比如說Man的wife屬性,就沒有g(shù)et方法
*
* 外界是不能帶到Man類的wife屬性的
*
* 呵呵
* 奇怪的是Woman類有husband的get方法,這就是封裝的一點(diǎn),還有的其他朋友也說到了
*/
封裝在java中有兩種表現(xiàn)
1.用類封裝一個(gè)事物的屬性和方法。
2.用方法來封裝一個(gè)固定的算法。
樓上所說的其實(shí)是封裝的程度不一樣,在面向?qū)ο蟮男g(shù)語中粒度來表示這個(gè)程度。
封裝其實(shí)是要看情況而定的,如果你這個(gè)類是描述人的,需要這個(gè)人完成一些基本的動(dòng)作,如吃飯,走路,那么就不用把細(xì)胞也封裝進(jìn)來。但是如果“人”這個(gè)類,需要做醫(yī)學(xué)的研究用,那么就需要封裝細(xì)胞這個(gè)屬性了。
代碼打多了就自然能理解了,不是一個(gè)復(fù)雜的概念。呵呵。