Redis 安装部署

•单点
•主从复制Replication
•高可用 Sentinel
•集群Cluster

Redis Standalone

1:官方站点: https://redis.io下载最新版或者最新stable版
2:解压源码并进入目录
3: 直接make
4:安装到指定的目录, make PREFIX=/usr/local/redis install
5:启动 redis-server

Redis 主从复制

 主从复制Replication

  1. 一个redis服务可以有多个该服务的复制品,这个Redis服务称为Master,其他复制品称为Slaves
  2. 只要网络连接正常,Master会一直将自己的数据更新同步给Slaves,保持主从同步
  3. 只有Master可以执行写命令,Slaves只能执行读命令
     主从复制问题
  4. Master下线,无法执行写请求
  5. 以上过程都是手工完成,无法自动Failover操作

Redis Sentinel

 高可用Sentinel

  1. 监控( Monitoring):Sentinel 会不断地检查主服务器和从服务器是否运作正常。
  2. 提醒( Notification):当被监控的某个 Redis 服务器出现问题时,Sentinel 可以通过 API 向管理员
    或者其他应用程序发送通知。
    3.自动故障迁移( Automatic failover):当主服务器不能正常工作时,Sentinel 会开始一次自动故障迁移
    操作,它会将失效主服务器的其中一个从服务器升级为新的主服务器,并让失效主服务器的其他从服务器
    改为复制新的主服务器;当客户端试图连接失效的主服务器时,集群也会向客户端返回新主服务器的地址,
    使得集群可以使用新主服务器代替失效服务器。

Redis Sentinel

 sentinel.conf 配置如下所示:

sentinel monitor mymaster 127.0.0.1 6379 1
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1

 启动 Sentinel
启动方式一:redis-sentinel /path/to/sentinel.conf
启动方式二: redis-server /path/to/sentinel.conf –sentine

方式二: redis-server /path/to/sentinel.conf –sentinel

Redis Cluster 集群
 Redis集群
Redis提供的分布式数据库方案,集群通过分片来进行数据共享,并提供复制和故障转移功能。一个
Redis集群通常由多个节点(node)组成,在刚开始的时候,每个节点都是相互独立的,它们都处于一个
只包含自己的集群当中,要组建一个真正可工作的集群,必须将这些独立的节点连接起来,构成一个包含
多个节点的集群。

  1. 3.0 version 支持
  2. Redis集群无中心节点
  3. 由多个Redis服务器组成的分布式网络服务集群
  4. 每个Redis服务器被称为节点Node,节点之间会相互通信( gossip)协议,两两相连

Redis Cluster 集群原理

 Redis集群分片

  1. redis集群中整个数据库被分为 16384个槽位Slot,所有key都会是这些slot中的一个,key的槽位计算公式
    为slot_number=crc16(key)%16384,其中crc16为16位的循环冗余效验和函数
  2. 集群中的每个主节点都可以处理0个至16383个槽,当16384个槽位都有某个节点在负责处理时,集群
    进入上线状态,并开始处理客户端发送的命令请求
     举例
  3. 三个主节点7000,7001,7002平均分配16384个slot槽位
  4. 节点7000指派的槽位为0至5460
  5. 节点7001指派的槽位为5461至10922
  6. 节点7002指派的槽位为10923至16383

Redis Cluster 集群

 redis.conf集群配置文件示例

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

 集群演示
下载redis 解压到cluster-test
cd cluster-test
mkdir 7000 7001 7002 7003 7004 7005
在7000 至 7005 中,各创建一个 redis.conf 文件,内容可以使用上面的示例配置文件,将配置中的端口号
从 7000 改为与文件夹名字相同端口。cluster-test 文件夹,然后用以下命令启动每个redis:
…/redis-server .7000/redis.conf
 创建集群命令
./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

Java 客户端

Redssion
特点:操作最简单,功能最丰富,Redis智能客户端,支持分布式集合,分布式锁,三方框架整合等。底层采
用的是Netty 框架。支持Redis 2.8以上版本,支持Java1.6+以上版本。使用比其他redis客户端效率高。
https://github.com/redisson/redisson/
Jedis
特点: Jedis是Redis的Java实现的客户端,其API提供了比较全面的Redis命令的支持。与Spring集成。作为其
官方推荐的Java版客户端jedis也非常强大和稳定,支持事务、管道及有jedis自身实现的分布式。
https://github.com/xetorthio/jedis

Redis客户端

Redis Desktop Manager
特点:C++ 编写,响应迅速,性能好。但不支持数据
库备份与恢复
https://github.com/uglide/RedisDesktopManager

Redis Studio
特点:又一个C++编写的redis管理工具,仅支持
windows平台,支持xp操作系统
https://github.com/cinience/RedisStudi

Redis 流量监控

 CacheCloud (https://github.com/sohutv/cachecloud)
提供一个Redis云管理平台:实现多种类型(Redis Standalone、
Redis Sentinel、Redis Cluster)自动部署、解决Redis实例碎片化现
象、提供完善统计、监控、运维功能、减少开发人员的运维成本和
误操作,提高机器的利用率,提供灵活的伸缩性,提供方便的接入
客户端
 功能

  1. 监控统计: 提供了机器、应用、实例下各个维度数据的监控和统计界面。
  2. 一键开启: Redis Standalone、Redis Sentinel、Redis Cluster三种类型的应用,无需
    手动配置初始化。
  3. Failover: : 支持哨兵,集群的高可用模式。
  4. 伸缩: 提供完善的垂直和水平在线伸缩功能。
  5. 完善运维: 提供自动运维和简化运维操作功能,避免纯手工运维出错。
  6. 方便的客户端:方便快捷的客户端接入。
  7. 元数据管理: 提供机器、应用、实例、用户信息管理。
  8. 流程化: 提供申请,运维,伸缩,修改等完善的处理流程

Redis 应用场景

会话缓存 (Session Cache) ) 最常用的情景是会话缓存。用Redis缓存会话比其他存储(如Memcached)
的优势在于:Redis提供持久化。当维护一个不是严格要求一致性的缓存时,如果用户的购物车信息全部
丢失,大部分人都会不高兴的。
存 对象缓存 做Java项目的时候,通常会了加快查询效率,减少和数据库的连接次数,我们都会在代码中加
入缓存功能。Redis的高效缓存给我们解决了难题
锁 分布式锁 在互联网产品应用中,有些场景需要加锁处理,比如:秒杀,全局递增ID,分布式批处理。
Redis提供一些命令SETNX,GETSET,可以方便实现分布式锁机制。
队列 Reids 在内存存储引擎领域的一大优点是提供 list 和 set 操作,这使得Redis能作为一个很好的消息
队列平台来使用。
排行榜/器 计数器 Redis在内存中对数字进行递增或递减的操作实现的非常好。集合(Set)和有序集合
(Sorted Set)也使得我们在执行这些操作的时候变的非常简单,Redis只是正好提供了这两种数据结构。
所以,我们要从排序集合中获取到排名最靠前的10个用户–我们称之为“user_scores”

Redis 行业应用

Twitter 使用 Redis 来储存用户时间线(user timeline)。
StackOverflow 使用 Redis 来进行缓存和消息分发。
Github 使用 Redis 作为持久化的键值对数据库,并使用 Resque 来实现消息队列。
新浪微博 使 用Redis 来实现计数器、 反向索引、 排行榜、消 息 队列, 并 储存用户关 系 。
知乎 使用 Redis 来进行计数、缓存、消息分发和任务调度
Pinterest 使用 Redis 来构建关注模型(follow model)和兴趣图谱(interest graph)。
Flickr 使用 Redis 来构建队列。

Redis常用命令

(1)字符串

SET name "Tom"
GET name
SET counter 1000
INCR counter
DECR counter
APPEND name "Jack"

(2)散列类型

HMSET car name "volvo" color "black" price
20
HMGET car name
HEXISTS car name
HDEL car price

(3)列表类型

LPUSH lists redis
LPUSH lists mogodb
RPUSH lists mysql
LPOP lists
RPOP lists
LRANGE lists 0 10

(4)集合类型

SADD letters a
SADD letters a b c
SREM letters c d
SMEMBERS letters
SADD setA 1 2 3
SDIFF setA setB

(5)有序集合

ZADD tutorials 1 redis 2 mongodb 3 mysql 3 mysql
ZRANGE tutorials 0 10 WITHSCORES

(6)事务

MULTI
INCR likes
INCR visitors
EXEC

(7)生存时间

SET session uuid11
EXPIRE session 20
TTL session

(8)排序

LPUSH mylist 4 2 6 1 7 3
SORT mylist
LPUSH mylistalpha a c e d c a
SORT mylistalpha ALPHA

(9)消息通知

PUBLISH redisChat "Redis is a great caching technique"
SUBSCRIBE redisChat
PUBLISH redisChat "Learn redis by tutorials point"






Redis 安装部署介绍相关推荐

  1. Redis安装部署配置说明

    1.    redis简介       Redis是个高性能的key-value数据库,它的key具有丰富的数据结构:string,hash,list set和sorted set.作为NOSQL,比 ...

  2. Redis 安装部署教程

    Redis 安装部署教程 通过https://github.com/tporadowski/redis/releases 地址下载Redis-x64-5.0.14.1.msi文件 下载完成,解压,双击 ...

  3. [喵咪Redis]Redis安装与介绍

    [喵咪Redis]Redis安装与介绍 前言 哈喽大家好啊,这次要来和大家一起来了解学习Redis的一系列技术,最终目的是搭建一个高可用redis集群自动负载灾备,那我们先从最基础的Redis的一些基 ...

  4. 所有类型的Redis安装部署

    所有类型的Redis安装部署 1.虚机安装单台redis A.下载包 ● 官网下载网页链接:https://redis.io/download wget https://github.com/redi ...

  5. NoSQLRedis的介绍和Redis安装部署,通过yum在线安装Redis,通过源码安装Redis;

    目录 1.Redis简介 1).Redis是什么? 2).Redis能干嘛? 3).可以从哪里去下载Redis? 4).使用Redis进行的多种操作 5).Redis与其他数据库和软件的对比 2.Re ...

  6. redis入门系列(一)redis安装部署

    2019独角兽企业重金招聘Python工程师标准>>> 用了redis一年多了,虽然原理和命令都了解,应付日常工作绰绰有余,但是从没从头到尾的去学习一下redis.从个人经历来讲,这 ...

  7. 镭速(Raysync)文件传输高可用安装部署介绍!

    使用HeartBeat实现高可用HA的配置.HA即(high available)高可用,又被叫做双机热备,用于关键性业务.简单理解就是,有2台机器 A 和 B,正常是 A提供服务,B待命闲置,当 A ...

  8. Redis安装部署使用

    1.安装: (1)下载Redis安装包: https://download.csdn.net/download/qq_33885899/9970129 (2)安装 执行 tar -zxvf redis ...

  9. Linux下redis安装部署

    1.下载源代码 http://code.google.com/p/redis/downloads/list 下载redis-1.2.6.tar.gz 将下载包拷贝到/usr/local/webserv ...

最新文章

  1. Datawhale浙大分享(附投票结果)
  2. php的常量和变量的区别,变量和常量的区别_在php当中常量和变量的区别
  3. android悬浮窗代码布局,三行代码实现Android应用内悬浮窗,无需一切权限,适配所有ROM和厂商...
  4. k8s--configmap
  5. 桥接模式和路由模式区别_联通创维光猫DT541-CSF改桥接模式方法
  6. [洛谷P3228] [HNOI2013]数列
  7. 计算机专项能力局域网管理,全国计算机信息技术考试局域网管理(Windows NT平台)管理员级考试考试大纲...
  8. python要学多久可以找到工作-自学Python的高效方法,学Python多久能找到工作?
  9. BigDecimal数据加法返回值接收
  10. unity探索者之微信分享回调
  11. 番茄时间法--2018年1月26号
  12. 阿里巴巴MaxCompute亮相VLDB2017
  13. survival cutoff值
  14. 可变卷积(Deformable ConvNets)算法的MXNet实现
  15. linux投影手机,linux连接投影机方法介绍
  16. 合工大路强java第四次作业第5题
  17. 计算机基本键盘应用,计算机键盘基础知识
  18. rgret白鹭 开发html游戏,白鹭推HTML5首款生态产品Egret Runtime
  19. 按照字典序大小遍历字符串的方法
  20. 面试攻略java提问

热门文章

  1. 文档级关系抽取方法,EMNLP 2020 paper
  2. 画一个圆角多边形_用SolidWorks一个扫描画出这个多边形瓶子
  3. redmi airdots左右耳不串联怎么办_小米AirDots二代4小时售罄,告诉你戴狂卖3500万的耳机是什么感受...
  4. mysql可视化工具有哪些_有哪些用过一次就爱上的可视化工具?
  5. python实现编辑距离以及回溯路径
  6. android 4.2 安全新特性(I)
  7. android得到assets下面的资源
  8. java 中方法里的参数_【Java基础】12、java中方法的参数传递机制
  9. CentOS7部署Nginx
  10. docker基础+registry