ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Redis、Eureka注册中心【微服务入门】

2022-08-02 01:03:25  阅读:202  来源: 互联网

标签:127.0 入门 0.1 Redis Eureka 6379 hi integer


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

  1. "rabbitmq"

  2. "mongodb"

  3. "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

  1. "rabbitmq"

  2. "redis"

  3. "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

  1. "mongodb"

  2. "rabbitmq"

  3. "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();
    }

标签:127.0,入门,0.1,Redis,Eureka,6379,hi,integer
来源: https://www.cnblogs.com/XinChennn/p/16542352.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有