Redis简单梳理及集群配置

2024-08-29 14:38

本文主要是介绍Redis简单梳理及集群配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

**REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。**

Redis简介

  • Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
  • Redis 与其他 key - value 缓存产品有以下几个特点:

    • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
    • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
    • Redis支持数据的备份,即master-slave模式的数据备份。
    • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
    • 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
    • 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
    • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

Redis安装

点我下载

  • 这里写图片描述

  • 打开一个 cmd 窗口 使用cd命令切换目录到 redis 运行 redis-server.exe redis.windows.conf
    到了后面我们知道启动Redis服务是通过redis-cli redis.conf这个命令的
    这里写图片描述
    到这里我们就成功的启动了一个Redis服务了。默认是没有密码的。这时候我们只需要ip+port就可以访问到这个redis了,从而就可以对这个Redis就行crud操作了。

  • 这个时候另外打开一个新的cmd窗口,运行redis-cli.exe -h 127.0.0.1 -p 6379
    下面我们就演示一下运行流程 首先 set mykey abc 这是设置
    然后我们就开始读取我们设置的key 运行 get mykey 获取abc

这里写图片描述

Redis 配置

  • Redis 的配置在redis.conf配置文件里。我们可以通过config命令获取信息
    1、 获取config_setting_name 值 Config get config_setting_name
    2、 获取日志级别 config get loglevel
    3、 获取所有 config get *

既然我们可以获取就应该可以修改,我们可以编辑redis.conf或者通过config set命令修改配置

Redis数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。有意思的是redis的string包含所有二进制数据,包括图片等。String一个键最大存储512MB 数据

数据类型获取设置
String Get Set
Hash Hgetall Hmset
List Lrange Lpush
Set Smembers Sadd
zset ZrangebyscoreZadd
  • 注意:在这里变量不能重复,string a ,那么不能再hash a 了。还有zset和set都是不能元素重复的。Set里添加的元素重复是不处理的。但是zset中添加重复元素会覆盖的。Zset中元素不能重复但是score是可以覆盖的

集群配置前期准备

  • 首先去Github下载最新的Redis,

这里写图片描述

值得解释的是我下载的windows版本,redis.conf 在这里是redis.windows.conf。有了这个我们只需要在redis.conf文件里修改端口然后通过redis-cli redis.conf 这个命令启动了。
在这里给大家一个小建议将下面代码贴在bat文件中,就可以避免每次输入命令了,

  @echo offredis-server.exe redis.conf@pause

然后将bat文件名修改成自己喜欢的名字就行了,以后我们在点击这个就可以执行开启Redis服务的功能。我都是讲文件名和端口号同意起来的,这样有助于后面集群。

到这里我们就创建了一个Redis服务了。集群就是很多个这样的Redis服务在一起工作。所以我们只要复制我们配置好的这个Redis服务。并把redis.conf里面的端口号改成不一样的,吧bat名字也改成对应端口。
这里写图片描述

ruby环境安装

  • 因为redis集群是通过Redis cluster来实现的,redis-cluster安装前需要安装ruby环境,搭建集群需要使用到官方提供的ruby脚本。需要安装ruby的环境。
  • 这里写图片描述

安装RubyGems

下载下来是一个压缩包,解压运行里面的 setup.rb 安装 rubyGems
删除默认的官方源
gem sources -r https://rubygems.org/
添加淘宝源
gem sources -a https://ruby.taobao.org/
查看当前源
gem sources -l

这里写图片描述

集群开启(使用Redis - cluster )

1.按照上面所说的配置好各个实例,主要是改端口号,运行 7000.bat- 7005.bat脚本启动六个redis实例
2.另开一个cmd窗口到redis文件夹下运行

redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

这里写图片描述
我们选择yes 就是同意Redis-cluster对我开启的这六个Redis服务进行随机分片了。其中是三主三从。根据实际需求我们可以设置N主M从,但是通过Redis-cluster必须至少要启动六个服务器。

replicas -1 意思是为我们的集群中每个主节点都配置一个从节点
到这里我们的集群就已经配置完成了,至于怎么在Java中使用呢,Redis也提供了很好接口给我们。

Java Redis 整合

  • Redis给我们提供了jedis jar包,我们引入这个jar包执行如下操作就可以连接到指定的Redis服务上了。Redis 默认没有密码,没有密码jedis.auth这句就不写或者写空都可以的
 //连接redis服务器,192.168.0.100:6379jedis = new Jedis("127.0.0.1", 6379);//权限认证jedis.auth("RedisZxh");

这篇关于Redis简单梳理及集群配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1118148

相关文章

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

Springboot整合Redis主从实践

《Springboot整合Redis主从实践》:本文主要介绍Springboot整合Redis主从的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言原配置现配置测试LettuceConnectionFactory.setShareNativeConnect

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

maven私服配置全过程

《maven私服配置全过程》:本文主要介绍maven私服配置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用Nexus作为 公司maven私服maven 私服setttings配置maven项目 pom配置测试效果总结使用Nexus作为 公司maven私

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别