zoukankan      html  css  js  c++  java
  • 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 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");

  • 相关阅读:
    MySQL统计函数记录——按月、按季度、按日、时间段统计
    Myslq查询字段为null的数据
    表情包
    在线logo制作
    在线图片识别 图片转文字 OCR
    PDF
    php读取access数据库
    java注解的自定义和使用
    zookkeper原理学习
    mybatis源码阅读心得
  • 原文地址:https://www.cnblogs.com/zhangxinhua/p/8319219.html
Copyright © 2011-2022 走看看