Redis、Eureka注册中心【微服务入门】
2022/8/3 2:23:00
本文主要是介绍Redis、Eureka注册中心【微服务入门】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Redis
什么是Redis?
REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。
Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。
Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。
Redis 优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
- 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
- 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Redis与其他key-value存储有什么不同?
- Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
- Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
Redis 数据类型
Redis支持五种数据类型:
- string(字符串)
- hash(哈希) 是一个键值(key=>value)对集合. hash 特别适合用于存储对象
- list(列表)
- set(集合)
- zset(sorted set:有序集合)。
Redis常用命令
string(字符串)
127.0.0.1:6379> set hi xinchen
OK
127.0.0.1:6379> get hi
"xinchen"
Hash(哈希)
DEL hello 用于删除前面测试用过的 key,不然会报错:(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> del hello
(integer) 1
127.0.0.1:6379> get hello
(nil)
127.0.0.1:6379> hmset hello field1 "Hello" field2 "World"
OK
127.0.0.1:6379> hget hello field1
"Hello"
127.0.0.1:6379> hget hello field2
"World"
List(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
127.0.0.1:6379> del hi
(integer) 0
127.0.0.1:6379> lpush hi redis
(integer) 1
127.0.0.1:6379> lpush hi mongodb
(integer) 2
127.0.0.1:6379> lpush hi rabbitmq
(integer) 3
127.0.0.1:6379> lrange hi 0 10
"rabbitmq"
"mongodb"
"redis"
Set(集合)
存成功返回1,不成功返回0
127.0.0.1:6379> del hi
(integer) 1
127.0.0.1:6379> sadd hi redis
(integer) 1
127.0.0.1:6379> sadd hi mongodb
(integer) 1
127.0.0.1:6379> sadd hi mongodb
(integer) 0
127.0.0.1:6379> sadd hi rabbitmq
(integer) 1
127.0.0.1:6379> smembers hi
"rabbitmq"
"redis"
"mongodb"
zset(sorted set:有序集合)
添加元素到集合,元素在集合中存在则更新对应score
127.0.0.1:6379> del hi
(integer) 1
127.0.0.1:6379> zadd hi 0 redis
(integer) 1
127.0.0.1:6379> zadd hi 0 mongodb
(integer) 1
127.0.0.1:6379> zadd hi 0 rabbitmq
(integer) 1
127.0.0.1:6379> zadd hi 0 rabbitmq
(integer) 0
127.0.0.1:6379> zrangebyscore hi 0 1000
"mongodb"
"rabbitmq"
"redis"
远程服务连接
如果需要在远程 redis 服务上执行命令,同样我们使用的也是 redis-cli 命令。
redis-cli -h host -p port -a password
微服务
Eureka注册中心
服务发现
- 引入eureka-client依赖
<!--eureka客户端依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
- 在application.yml中配置eureka地址
spring: application: # eureka的服务名称 name: orderservice eureka: client: service-url: # eureka的地址信息 defaultZone: http://127.0.0.1:10086/eureka/
- 在orderService中通过eureka使用服务名称代替硬编码
String url = "http://userservice/user/" + order.getUserId();
- 在注入的RestTemplate中加入负载均衡注解
/** * 创建RestTemplate并注入Spring * @param * @return */ @Bean @LoadBalanced // 负载均衡 public RestTemplate restTemplate(){ return new RestTemplate(); }
这篇关于Redis、Eureka注册中心【微服务入门】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-08阿里云Redis项目实战入门教程
- 2024-11-08阿里云Redis资料:新手入门与初级使用指南
- 2024-11-08阿里云Redis教程:新手入门及实用指南
- 2024-11-07阿里云Redis学习入门:新手必读指南
- 2024-11-07阿里云Redis学习入门:从零开始的操作指南
- 2024-11-07阿里云Redis学习:初学者指南
- 2024-11-06阿里云Redis入门教程:轻松搭建与使用指南
- 2024-11-02Redis项目实战:新手入门教程
- 2024-10-22Redis入门教程:轻松掌握数据存储与操作
- 2024-10-22Redis缓存入门教程:快速掌握Redis缓存基础知识