扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Java连接redis的使用示例
创新互联专注于淇县网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供淇县营销型网站建设,淇县网站制作、淇县网页设计、淇县网站官网定制、成都微信小程序服务,打造淇县网络公司原创品牌,更为您提供淇县网站排名全网营销落地服务。
Redis是开源的key-value存储工具,redis通常用来存储结构化的数据,因为redis的key可以包含String、hash、listset和sorted
list。
Redisclient支持多种语言,包括:c、C++、C#、php、java、python、go等语言,根据自己的开发语言,选择合适的redis
client版本类型即可。我是使用java语言开发的,针对java语言,redis
client也提供了多种客户端支持,按照推荐类型依次是:Jedis、Redisson、JRedis、JDBC-Redis、RJC、redis-protocol、aredis、lettuce。前两种类型是比较推荐的,我们采用了Redisson类型版本作为redisclient的使用。
Redisson版的redis可发工程搭建
1.
新建maven工程
2.
在pom.xml文件的dependencies节点下增加如下内容:
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工程构建完成后即可进行开发了
开发示例
下面是演示连接redis服务器、保存读取concurrentMap对象、保存读取set对象和保存读取Queue对象的示例代码,代码比较简单,这里就不再详细讲解了,代码如下:
[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方法的时候就会同步到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队列
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);
//
关闭连接
redisson.shutdown();
}
}
public class Man {
//这里是对属性的封装,一个人的姓名,年龄,妻子都是这个对象(人)的私有属性
private String name;
private int age;
private Woman wife;
//这里是对改人对外界提供方法的封装,可以设置改男人的妻子,姓名,年龄也可以获取改男人的姓名和年龄
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;
}
}
/**
* 仔细看就会发现,Man类没有提供getWife的方法,这是以为男人不想让自己的妻子被外界访问,
*
* 直接下来呢,就是封装可以吧一个对象的属性私有,而提供一些可以被外界访问的属性的方法,
*
* 比如说,name属性,Man和Woman类都有相应的get和set方法,外界都可以通过这些方法访问和修改
*
* 同时对一些改对象不想让外界访问的属性,就不提供其方法,比如说Man的wife属性,就没有get方法
*
* 外界是不能带到Man类的wife属性的
*
* 呵呵
* 奇怪的是Woman类有husband的get方法,这就是封装的一点,还有的其他朋友也说到了
*/
封装在java中有两种表现
1.用类封装一个事物的属性和方法。
2.用方法来封装一个固定的算法。
楼上所说的其实是封装的程度不一样,在面向对象的术语中粒度来表示这个程度。
封装其实是要看情况而定的,如果你这个类是描述人的,需要这个人完成一些基本的动作,如吃饭,走路,那么就不用把细胞也封装进来。但是如果“人”这个类,需要做医学的研究用,那么就需要封装细胞这个属性了。
代码打多了就自然能理解了,不是一个复杂的概念。呵呵。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流