虽然说Dubbo和Redis并没有什么关系,但是还是可以把服务注册到Redis上面去
我们先认识一下Redis:
redis
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
总之:Redis是一个高效的基于内存亦可持久化的键值对存储服务器,是非常流行的NoSQL数据库
官网:http://redis.io
redis环境搭建
去官网下载:http://download.redis.io/releases/
下载后解压
使用命令行进入解压目录
d:\cd redis
d:\redis>redis-server.exe
此时不要关闭cmd窗口,打开另一个窗口
d:\cd redis
d:\redis>redis-cli.exe -h 127.0.0.1 -p 6379
然后使用set 和get 存储和取出键值对
以上就是redis的基本操作
dubbo使用redis注册中心
实现dubbo的redis注册中心,仅需在服务提供者和服务消费者的spring配置文件中配置即可
Spring配置(两种写法):
<dubbo:registry address:"redis://127.0.0.1:6379">
<dubbo:registry protocol="redis" address:"127.0.0.1:6379">
添加redis客户端jar包
<!--redis客户端依赖的jar-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.6</version>
</dependency>
拓展知识:redis和jedis的渊源
Jedis是基于Java语言的Redis的客户端,通过使用Jedis可以操作Redis中的数据,简言之Jedis是Redis的Java版本API。
Jedis的常用操作
1、Jedis Jar包的下载
maven:
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
2、连接服务器
Jedis jedis = new Jedis("ip", port)
3、公用函数(适用于所有数据类型)
jedis.exists(key) #判断是否存在
jedis.type(type) #判断数据类型
jedis.keys(pattern) #根据匹配条件,查询所有的key
jedis.randomkey() #随机返回一个key
jedis.rename(oldKey, newKey) #修改键名,newKey如果存在直接覆盖
jedis.renamenx(oldKey, newKey)#修改键名,newKey如果存在,返回错误(不直接覆盖)
jedis.expire(key, seconds) #给指定的key设置失效时间
jedis.expireAt(key, final unixTime) #设置指定的key在什么时候以后失效
jedis.ttl(key) #查看一个key还能存活多少时间(如果使用了expire的)
jedis.persist(key) #取消设置的失效时间
还有很多函数可以使用,这里不一一列举,可以翻阅源码和文档。
3、字符串(String)操作函数
jedis.set("name", "value") #添加
jedis.get("name") #查询
jedis.del("name") #删除
4、列表(List)操作函数
jedis.lpush(key, value) #列表的左边添加元素
jedis.rpush(key, value) #列表的右边边添加元素
jedis.llen(key) #列表中元素个数
jedis.lrange(key, start, end ) #返回列表中从索引start至end的元素
jedis.ltrim(key, start, end) #修剪列表元素,保留指定索引范围内的元素(从左边开始)
jedis.lindex(key, index) #查询列表中索引为index的元素
jedis.lset(key, index, newValue) #修改列表中索引为index元素的内容
jedis.lpop(key) #取出左边第一个元素,同时删除
jedis.rpop(key) #取出右边第一个元素,同时删除
jedis.rpoplpush(srckey, destkey) #取出并删除srckey最右边元素,写入desckey最左边
5、集合(Set)操作函数
jedis.sadd(key, value) #保存元素
jedis.smember(key) #返回集合中所有元素
jedis.srem(key, value) #删除集合中元素value
jedis.spop(key) #随机取出集合中一个元素,并删除该元素
jedis.spop(key, count) #随机取出集合中的count个元素,并删除
6、散列(Hash)操作函数
jedis.hset(key, field, value) #保存元素
jedis.hget(key, field) #查询元素
jedis.hsetnx(key, field, value) #向Hash中添加不存在的元素,如果已经存在,则不添加
jedis.hmset(key, Map<String, String> hash) #向Hash中一次保存多个元素
jedis.hmget(key, field) #查询元素