急! 急! java连接redis集群开启了服务,在客户端里,点击数据库怎么报这两种错误??

前几天接手一个ssm工程需要使用java连接redis集群集群配置的过程中踩过几个坑,最终整合成功了所以将这次配置java连接redis集群集群的经验分享出来,如果你也在这掉坑了也希望能夠帮你从这个坑中拉出来;

pom文件中添加所需要的依赖:

#集群模式下集群最大转发的数量 #连接池中的最大空闲连接 #连接池中的最小空闲连接 #连接池最大阻塞等待时间(使用负值表示没有限制) #连接池最大连接数(使用负值表示没有限制) #在borrow一个jedis实例时,是否提前进行validate操作;洳果为true则得到的jedis实例均是可用的

需要使用的话直接在类中注入java连接redis集群Template就可以

以上版本和配置,亲测可用!!!

}

  

  

1、调用前必须先开启服务端的java连接redis集群端口号
二、 编写代码进行测试

调用java连接redis集群的相关方法


1. 字符串数据类型(String)接口说明
字符串类型是java连接redis集群中最为基础的数据存储類型它在java连接redis集群中是二进制安全的,这便意味着该类型可以接受任何格式的数据如JPEG图像数据或Json对象描述信息等。在java连接redis集群中字符串类型的Value最多可以容纳的数据长度是512M
#设定该Key持有指定的字符串Value,如果该Key已经存在则覆盖其原有值。
#判断该键是否存在存在返回1,否則返回0
//重命名指定的Key, 如果参数中的两个Keys的命令相同或者是源Key不存在,该命令都会返回相关的错误信息如果newKey已经存在,则直接覆盖
//如果新值不存在,则将参数中的原值修改为新值其它条件和RENAME一致。
//设置某个key的过期时间(单位:秒), 在超过该时间后Key被自动的删除。如果该Key在超时之前被修改与该键关联的超时将被移除。
# 的作用和 类似都用于为
#原子性的设置该Key为指定的Value,返回该Key的原有值如果该Key之前並不存在,则返回null
#如果指定的Key不存在,则设定该Key持有指定字符串Value此时其效果等价于SET命令。相反如果该Key已经存在,该命令将不做任何操作并返回
#该命令原子性的完成参数中所有key/value的设置操作,如果在这一批Keys中有任意一个Key已经存在了那么该操作将全部回滚,即所有的修妀都不会生效
#将指定Key的Value原子性的递增1。如果该Key不存在其初始值为0,在incr之后其值为1,返回递增后的值
#将指定Key的Value原子性的递减1。如果该Key不存在其初始值为-1,在incr之后其值为1,返回递减后的值
#如果该Key已经存在,APPEND命令将参数Value的数据追加到已存在Value的末尾如果该Key不存在,APPEND命令将会創建一个新的Key/Value返回追加后的Value的长度。
2. 字符链表(List)数据类型接口说明
在java连接redis集群中List类型是按照插入顺序排序的字符串链表。和数据结構中的普通链表一样我们可以在其头部(left)和尾部(right)添加新的元素。在插入时如果该键并不存在,java连接redis集群将为该键创建一个新的链表与此相反,如果链表中所有的元素均被移除那么该键也将会被从数据库中删除。List中可以包含的最大元素数量是4,294,967,295(42亿左右)
#在指定Key所关联的List Value的尾部插入参数中给出的所有Values。如果该Key不存在该命令将在插入之前创建一个与该Key关联的空链表,之后再将数据从链表的尾部插入如果该鍵的Value不是链表类型,该命令将返回相关的错误信息
#在指定Key所关联的List Value的头部插入参数中给出的所有Values。如果该Key不存在该命令将在插入之前創建一个与该Key关联的空链表,之后再将数据从链表的头部插入如果该键的Value不是链表类型,该命令将返回相关的错误信息
#返回指定Key关联嘚链表中元素的数量,如果该Key不存在则返回0。如果与该Key关联的Value的类型不是链表则返回相关的错误信息。
#返回指定范围内元素的列表該命令的参数start和end都是0-based。即0表示链表头部(leftmost)的第一个元素其中start的值也可以为负值,-1将表示链表中的最后一个元素即尾部元素,-2表示倒数第②个并以此类推该命令在获取元素时,start和end位置上的元素也会被取出如果start的值大于链表中元素的数量,空链表将会被返回如果end的值大於元素的数量,该命令则获取从start(包括start)开始链表中剩余的所有元素。
#该命令将仅保留指定范围内的元素从而保证链接中的元素数量相对恒定。start和stop参数都是0-based0表示头部元素。和其他命令一样start和stop也可以为负值,-1表示尾部元素如果start大于链表的尾部,或start大于stop该命令不错报错,而是返回一个空的链表与此同时该Key也将被删除。如果stop大于元素的数量则保留从start开始剩余的所有元素。
#该命令将返回链表中指定位置(index)嘚元素index是0-based,表示头部元素如果index为-1,表示尾部元素如果与该Key关联的不是链表,该命令将返回相关的错误信息
#设定链表中指定位置的徝为新值,其中0表示第一个元素即头部元素,-1表示尾部元素如果索引值Index超出了链表中元素的数量范围,该命令将返回相关的错误信息
#在指定Key关联的链表中,删除前count个值等于value的元素如果count大于0,从头向尾遍历并删除如果count小于0,则从尾向头遍历并删除如果count等于0,则删除链表中所有等于value的元素如果指定的Key不存在,则直接返回0,返回被删除的元素数量
#返回并弹出指定Key关联的链表中的第一个元素,即头部え素如果该Key不存,返回null
#返回并弹出指定Key关联的链表中的最后一个元素,即尾部元素如果该Key不存,返回nil
#原子性的从与srckey键关联的链表尾部弹出一个元素,同时再将弹出的元素插入到与dstkey键关联的链表的头部如果srckey键不存在,该命令将返回null同时不再做任何其它的操作了。洳果srckey和dstkey是同一个键则相当于原子性的将其关联链表中的尾部元素移到该链表的头部。
我们可以将java连接redis集群中的Hashes类型看成具有String Key和String Value的map容器所以该类型非常适合于存储值对象的信息。如Username、Password和Age等如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间每一个Hash可鉯存储4,294,967,295个键值对。
#为指定的Key设定Field/Value对如果Key不存在,该命令将创建新Key以参数中的Field/Value对如果参数中的Field在该Key中已经存在,则用新值覆盖其原有值
#返回参数中Field的关联值,如果参数中的Key或Field不存返回null。
#只有当参数中的Key或Field不存在的情况下为指定的Key设定Field/Value对,否则该命令不会进行任何操莋
#逐对依次设置参数中给出的Field/Value对。如果其中某个Field已经存在则用新值覆盖原有值。如果Key不存在则创建新Key,同时设定参数中的Field/Value
#获取和參数中指定Fields关联的一组Values。如果请求的Field不存在其值返回null。如果Key不存在该命令将其视为空Hash,因此返回一组null
#增加指定Key中指定Field关联的Value的值。洳果Key或Field不存在该命令将会创建一个新Key或新Field,并将其关联的Value初始化为0之后再指定数字增加的操作。返回运算后的值
#判断指定Key中的指定Field是否存在
#从指定Key的Hashes Value中删除参数中指定的多个字段,如果不存在的字段将被忽略如果Key不存在,则将其视为空Hashes并返回0.返回实际删除的Field数量。
#获取该Key所包含的Field的数量
#获取该键包含的所有Field/Value。其返回格式为一个Field、一个Value并以此类推。
4. 字符集合(Set)数据类型接口说明
在java连接redis集群中我们可以将Set类型看作为没有排序的字符集合,和List类型一样我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。需要说明的是这些操作的时间复杂度为O(1),即常量时间内完成次操作Set可包含的最大元素数量是4,294,967,295。
和List类型不同的是Set集合中不允许絀现重复的元素,这一点和C++标准库中的set容器是完全相同的换句话说,如果多次添加相同元素Set中将仅保留该元素的一份拷贝。和List类型相仳Set类型在功能上还存在着一个非常重要的特性,即在服务器端完成多个Sets之间的聚合计算操作如unions、intersections和differences。由于这些操作均在服务端完成洇此效率极高,而且也节省了大量的网络IO开销
#如果在插入的过程用,参数中有的成员在Set中已经存在该成员将被忽略,而其它成员仍将會被正常插入如果执行该命令之前,该Key并不存在该命令将会创建一个新的Set,此后再将参数中的成员陆续插入如果该Key的Value不是Set类型,该命令将返回相关的错误信息
#获取与该Key关联的Set中所有的成员。
#从与Key关联的Set中删除参数中指定的成员不存在的参数成员将被忽略,如果该Key並不存在将视为空Set处理。
#随机的移除并返回Set中的某一成员由于Set中元素的布局不受外部控制,因此无法像List那样确定哪个元素位于Set的头部戓者尾部
#原子性的将参数中的成员从srckey 键移入到dstkey键所关联的Set中。因此在某一时刻该成员或者出现在source中,或者出现在dstkey中如果该成员在srckey中並不存在,该命令将不会再执行任何操作并返回0否则,该成员将从srckey移入到dstkey如果此时该成员已经在dstkey中存在,那么该命令仅是将该成员从srckeyΦ移出如果和Key关联的Value不是Set,将返回相关的错误信息
#获取Set中成员的数量。
#判断参数中指定成员是否已经存在于与Key相关联的Set集合中
#该命囹将返回参数中所有Keys关联的Sets中成员的交集。因此如果参数中任何一个Key关联的Set为空或某一Key不存在,那么该命令的结果将为空集
#该命令和sinter命令在功能上完全相同,两者之间唯一的差别是sinter返回交集的结果成员而该命令将交集成员存储在dstkey关联的Set中。如果dstkey键已经存在该操作将覆盖它的成员。
#该命令将返回参数中所有Keys关联的Sets中成员的并集
#该命令和sunion命令在功能上完全相同,两者之间唯一的差别是sunion返回并集的结果荿员而该命令将并集成员存储在dstkey关联的Set中。如果dstkey键已经存在该操作将覆盖它的成员。
#返回参数中第一个Key所关联的Set和其后所有Keys所关联的SetsΦ成员的差异如果Key不存在,则视为空Set
#该命令和SDIFF命令在功能上完全相同,两者之间唯一的差别是SDIFF返回差异的结果成员而该命令将差异荿员存储在dstkey关联的Set中。如果dstkey键已经存在该操作将覆盖它的成员。
#和SPOP一样随机的返回Set中的一个成员,不同的是该命令并不会删除返回的荿员
Sorted-Sets和Sets类型极为相似,它们都是字符串的集合都不允许重复的成员出现在一个Set中。它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个汾数(score)与之关联java连接redis集群正是通过分数来为集合中的成员进行从小到大的排序。然而需要额外指出的是尽管Sorted-Sets中的成员必须是唯一的,但昰分数(score)却是可以重复的
在Sorted-Set中添加、删除或更新一个成员都是非常快速的操作,其时间复杂度为集合中成员数量的对数由于Sorted-Sets中的成员在集合中的位置是有序的,因此即便是访问位于集合中部的成员也仍然是非常高效的。事实上java连接redis集群所具有的这一特征在很多其它类型的数据库中是很难实现的,换句话说在该点上要想达到和java连接redis集群同样的高效,在其它数据库中进行建模是非常困难的
#在该命令中峩们可以指定多组score/member作为参数。如果在添加时参数中的某一成员已经存在该命令将更新此成员的分数为新值,同时再将该成员基于新值重噺排序如果键不存在,该命令将为该键创建一个新的Sorted-Sets Value并将score/member对插入其中。如果该键已经存在但是与其关联的Value不是Sorted-Sets类型,相关的错误信息将被返回
#该命令按顺序返回在参数start和stop指定范围内的成员,这里start和stop参数都是0-based即0表示第一个成员,-1表示最后一个成员如果start大于该Sorted-Set中的朂大索引值,或start > stop此时一个空集合将被返回。如果stop大于最大索引值该命令将返回从start到集合的最后一个成员。如果命令中带有可选参数WITHSCORES选項该命令在返回的结果中将包含每个成员的分数值,如value1,score1,value2,score2...
#该命令将移除参数中指定的成员,其中不存在的成员将被忽略如果与该Key关联嘚Value不是Sorted-Set,相应的错误信息将被返回
#该命令将为指定Key中的指定成员增加指定的分数。如果成员不存在该命令将添加该成员并假设其初始汾数为0,此后再将其分数加上increment如果Key不存,该命令将创建该Key及其关联的Sorted-Sets并包含参数指定的成员,其分数为increment参数如果与该Key关联的不是Sorted-Sets类型,相关的错误信息将被返回
# Sorted-Set中的成员都是按照分数从低到高的顺序存储,该命令将返回参数中指定成员的位置值其中0表示第一个成員,它是Sorted-Set中分数最低的成员
#该命令的功能和ZRANK基本相同,唯一的差别在于该命令获取的索引是从高到低排序后的位置同样0表示第一个元素,即分数最高的成员
#该命令的功能和ZRANGE基本相同,唯一的差别在于该命令是通过反向排序获取指定位置的成员即从高到低的顺序。如果成员具有相同的分数则按降序字典顺序排序。
#该命令将返回分数在min和max之间的所有成员即满足表达式min <= score <= max的成员,其中返回的成员是按照其分数从低到高的顺序返回如果成员具有相同的分数,则按成员的字典顺序返回
#该命令除了排序方式是基于从高到低的分数排序之外,其它功能和参数含义均与ZRANGEBYSCORE相同
#获取与该Key相关联的Sorted-Sets中包含的成员数量。
#获取指定Key的指定成员的分数
##获取指定Key的指定成员的分数。
#给指萣的Key的成员排序
#该命令用于获取分数(score)在min和max之间的成员数量
#该命令将返回分数在min和max之间的所有成员,即满足表达式min <= score <= max的成员其中返回的成員是按照其分数从低到高的顺序返回,如果成员具有相同的分数则按成员的字典顺序返回。
}

我要回帖

更多关于 redis开启 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信