- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Spring集成jedis的配置与使用简单实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
jedis是redis的java客户端,spring将redis连接池作为一个bean配置.
redis连接池分为两种,一种是“redis.clients.jedis.shardedjedispool”,这是基于hash算法的一种分布式集群redis客户端连接池.
另一种是“redis.clients.jedis.jedispool”,这是单机环境适用的redis连接池.
maven导入相关包:
1
2
3
4
5
6
|
<!-- redis依赖包 -->
<dependency>
<groupid>redis.clients</groupid>
<artifactid>jedis</artifactid>
<version>
2.9
.
0
</version>
</dependency>
|
shardedjedispool是redis集群客户端的对象池,可以通过他来操作shardedjedis,下面是shardedjedispool的xml配置,spring-jedis.xml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<beans xmlns=
"http://www.springframework.org/schema/beans"
xmlns:xsi=
"http://www.w3.org/2001/xmlschema-instance"
xmlns:context=
"http://www.springframework.org/schema/context"
xsi:schemalocation="http:
//www.springframework.org/schema/beans
http:
//www.springframework.org/schema/beans/spring-beans.xsd
http:
//www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 引入jedis的properties配置文件 -->
<!--如果你有多个数据源需要通过<context:property-placeholder管理,且不愿意放在一个配置文件里,那么一定要加上ignore-unresolvable=“
true
"-->
<context:property-placeholder location=
"classpath:properties/redis.properties"
ignore-unresolvable=
"true"
/>
<!--shardedjedispool的相关配置-->
<bean id=
"jedispoolconfig"
class
=
"redis.clients.jedis.jedispoolconfig"
>
<!--新版是maxtotal,旧版是maxactive-->
<property name=
"maxtotal"
>
<value>${redis.pool.maxactive}</value>
</property>
<property name=
"maxidle"
>
<value>${redis.pool.maxidle}</value>
</property>
<property name=
"testonborrow"
value=
"true"
/>
<property name=
"testonreturn"
value=
"true"
/>
</bean>
<bean id=
"shardedjedispool"
class
=
"redis.clients.jedis.shardedjedispool"
scope=
"singleton"
>
<constructor-arg index=
"0"
ref=
"jedispoolconfig"
/>
<constructor-arg index=
"1"
>
<list>
<bean
class
=
"redis.clients.jedis.jedisshardinfo"
>
<constructor-arg name=
"host"
value=
"${redis.uri}"
/>
</bean>
</list>
</constructor-arg>
</bean>
</beans>
|
下面是单机环境下redis连接池的配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<beans xmlns=
"http://www.springframework.org/schema/beans"
xmlns:xsi=
"http://www.w3.org/2001/xmlschema-instance"
xmlns:context=
"http://www.springframework.org/schema/context"
xsi:schemalocation="http:
//www.springframework.org/schema/beans
http:
//www.springframework.org/schema/beans/spring-beans.xsd
http:
//www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 引入jedis的properties配置文件 -->
<!--如果你有多个数据源需要通过<context:property-placeholder管理,且不愿意放在一个配置文件里,那么一定要加上ignore-unresolvable=“
true
"-->
<context:property-placeholder location=
"classpath:properties/redis.properties"
ignore-unresolvable=
"true"
/>
<!--jedis连接池的相关配置-->
<bean id=
"jedispoolconfig"
class
=
"redis.clients.jedis.jedispoolconfig"
>
<!--新版是maxtotal,旧版是maxactive-->
<property name=
"maxtotal"
>
<value>${redis.pool.maxactive}</value>
</property>
<property name=
"maxidle"
>
<value>${redis.pool.maxidle}</value>
</property>
<property name=
"testonborrow"
value=
"true"
/>
<property name=
"testonreturn"
value=
"true"
/>
</bean>
<bean id=
"jedispool"
class
=
"redis.clients.jedis.jedispool"
>
<constructor-arg name=
"poolconfig"
ref=
"jedispoolconfig"
/>
<constructor-arg name=
"host"
value=
"${redis.host}"
/>
<constructor-arg name=
"port"
value=
"${redis.port}"
type=
"int"
/>
<constructor-arg name=
"timeout"
value=
"${redis.timeout}"
type=
"int"
/>
<constructor-arg name=
"password"
value=
"${redis.password}"
/>
<constructor-arg name=
"database"
value=
"${redis.database}"
type=
"int"
/>
</bean>
</beans>
|
对应的classpath:properties/redis.properties.xml为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#最大分配的对象数
redis.pool.maxactive=
200
#最大能够保持idel状态的对象数
redis.pool.maxidle=
50
redis.pool.minidle=
10
redis.pool.maxwaitmillis=
20000
#当池内没有返回对象时,最大等待时间
redis.pool.maxwait=
300
#格式:redis:
//:[密码]@[服务器地址]:[端口]/[db index]
redis.uri = redis:
//:12345@127.0.0.1:6379/0
redis.host =
127.0
.
0.1
redis.port =
6379
redis.timeout=
30000
redis.password =
12345
redis.database =
0
|
二者操作代码类似,都是先注入连接池,然后通过连接池获得jedis实例,通过实例对象操作redis.
shardedjedis操作:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
@autowired
private
shardedjedispool shardedjedispool;
//注入shardedjedispool
@requestmapping
(value =
"/demo_set"
,method = requestmethod.get)
@responsebody
public
string demo_set(){
//获取shardedjedis对象
shardedjedis shardjedis = shardedjedispool.getresource();
//存入键值对
shardjedis.set(
"key1"
,
"hello jedis"
);
//回收shardedjedis实例
shardjedis.close();
return
"set"
;
}
@requestmapping
(value =
"/demo_get"
,method = requestmethod.get)
@responsebody
public
string demo_get(){
shardedjedis shardedjedis = shardedjedispool.getresource();
//根据键值获得数据
string result = shardedjedis.get(
"key1"
);
shardedjedis.close();
return
result;
}
|
jedis操作:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
@autowired
private
jedispool jedispool;
//注入jedispool
@requestmapping
(value =
"/demo_set"
,method = requestmethod.get)
@responsebody
public
string demo_set(){
//获取shardedjedis对象
jedis jedis = jedispool.getresource();
//存入键值对
jedis.set(
"key2"
,
"hello jedis one"
);
//回收shardedjedis实例
jedis.close();
return
"set"
;
}
@requestmapping
(value =
"/demo_get"
,method = requestmethod.get)
@responsebody
public
string demo_get(){
jedis jedis = jedispool.getresource();
//根据键值获得数据
string result = jedis.get(
"key2"
);
jedis.close();
return
result;
}
|
总结 。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我的支持。如果你想了解更多相关内容请查看下面相关链接 。
原文链接:https://blog.csdn.net/u014320421/article/details/80576232 。
最后此篇关于Spring集成jedis的配置与使用简单实例的文章就讲到这里了,如果你想了解更多关于Spring集成jedis的配置与使用简单实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有一个 tomcat 服务器并使用 jedis 客户端连接到它。 我使用的jedis版本是“3.0.0-m1”,tomcat 8.0.15 连接后几个小时后,我看到以下异常。有什么帮助吗? redi
我正在使用 Jedis 连接到 Redis 并将数据推送到列表中。我正在为 JSON 数据使用 rpush。 这些是我执行的步骤: 从 Rabbitmq 获取数据 从 JSON 数据中收集信息并准备一
我正在尝试在 vim 中使用 python-jedi,但目前它完全无法使用,因为它试图在奇怪的时间完成代码。 我添加了以下行: let g:jedi#popup_on_dot = 0 到我的 vim
我正在使用 jedi-vim,输入以下内容后,出现“未找到模式”错误: import numpy numpy. 但是,如果我运行以下 python 脚本,我会得到一长串完成列表: import jed
以下 Java 代码将一百万对整数插入到 Redis 中。 public class JedisInsertion { public static byte[] fromInt(in
我在几个线程中看到了答案,但没有解决我的问题,因为我的问题偶尔会出现,如果有人有任何想法,请问这个问题。 我使用的是jedis 2.8.0版本,Spring Data redis 1.7.5版本。和用
我的 Storm 类使用 Redis 队列来收集数据。 我尝试运行我的 Storm jar storm jar jar_file_name.jar Topology_name configuratio
我通过 jedis 在 java 上有这段代码: int shb1 = jds.storeHypnoBeats(id1, arr1); 调用这个函数: int storeHypnoBeats(Stri
我是 jedi-vim 的新手,我不知道如何跳转其他文件中的函数定义。 jedi-vim 's doc是: 以下是其中的一部分: NOTE: subject to change! let g:jedi
我刚刚注意到,每当我对任何 Delphi 2010 项目进行增量编译 (ctrl-F9) 时,我的项目中引用的所有 JEDI 单元都会重新编译,尽管它们没有以任何方式进行更改。事实上,如果我创建一个新
我正在使用 Jedi usb hid 组件连接 HID 设备并对其进行读取和写入。我无法写入设备。我一直在使用这个代码。 type TReport = Packed record ReportID:
我正在使用 Jedis,我无法直接连接到 Redis,我必须使用代理。我可以使用 socks 代理通过 Jedis 连接到 Redis 吗? 请你帮帮我。 问候。 最佳答案 我一直在寻找解决方案,但找
我在 vim 中通过 YCM 使用 jedi,在我的项目中看到一些奇怪的行为,关于在 jediHttp 服务器上使用 usages 端点。基本上它只能找到我项目中类或函数的一小部分用法。它确实找到了当
我正在尝试连接到我的虚拟机 Redis package nosql; import redis.clients.jedis.Jedis; public class NoSQL { public sta
我在我用作生产者/消费者队列的 Redis 队列之上使用 Java 库 Jedis。它易于设置并且运行良好。 消费者代码如下 List messages = jedis.blpop(0, redisQ
什么是jedis事务执行成功响应? jedis 似乎会返回 1 作为成功响应。如果交易包括两个操作,我的以下代码是否有效? List ret = jedisAdapter.exec(tx, jedi
我在看jedis源码的时候发现 connection = connectionHandler.getConnectionFromSlot(JedisClusterCRC16.getSlot(key))
我在 jedis 客户端的帮助下使用 redis。在此处附加键值设置/获取的代码片段。在这里,我希望我的 jedisPool 只被初始化一次,但它被初始化了多次。不知道我哪里错了。用它挠我的头几天。我
当我像下面的代码一样使用 jedis 时: public class JedisTest extends Sync { private static final String _SET_KEY
我最近不得不使用 Jedis 库,它是一个很棒的库。我知道 Redis 是用 C 编写的,Jedis 只是将 Java 包装在 C 周围吗?光看Jedis源码是想不通的。谁能解释一下? 最佳答案 Je
我是一名优秀的程序员,十分优秀!