logo头像

学如逆水行舟,不进则退!!!

文章目录

Redis简单梳理及集群配置

本文于409天之前发表,文中内容可能已经过时。

REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统

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 数据




















数据类型获取设置
StringGetSet
HashHgetallHmset
ListLrangeLpush
SetSmembersSadd
zsetZrangebyscoreZadd
  • 注意:在这里变量不能重复,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 off
    redis-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:6379
   jedis = new Jedis("127.0.0.1", 6379);
 //权限认证
   jedis.auth("RedisZxh");

上一篇
坚持原创技术分享,您的支持将鼓励我继续创作!