redis搭建和主从复制搭建

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: redis搭建和主从复制搭建

一、数据库分类 *
数据库模型:
网状:第一代模型,实现太难,基本上没有成体数据库
层次:第二代模型,可以实现,ibm
关系:第三代模型,当前传统主流,oracle、ibm db2、sql server、mysql、postgresql(greenplum)
非关系:
文档:mongodb
键值对:redis
存储引擎:elasticsearch

关系和非关系数据库的区别:
关系型: 安全、速度稍慢
非关系型:速度快,安全性稍差

二、Redis重要特性
1.速度快
c语言写的
代码优雅
单线程架构,并发能力稍差,但可以用集群弥补
2.支持多种数据结构
字符串,哈希,列表,集合,有序集合
3.丰富的功能
天然计数器
健过期功能
消息队列
4.支持客户端语言多
php,java,python
5.数据持久化(memcache 无法持久化)
所有的数据都运行在内存中
支持2种格式持久化数据AOF RDB AOF&RDB
6.自带多种高可用架构
主从
哨兵
集群

三、redis应用场景
1.缓存-键过期时间
把session会话存在redis,过期删除
缓存用户信息,缓存Mysql部分数据,用户先访问redis,redis没有再访问mysql
商城优惠卷过期时间
2.排行榜-列表&有序集合
热度/点击数排行榜
直播间礼物积分排行
3.计数器-天然支持计数器
帖子浏览数
视频播放数
评论数
点赞/踩
4.社交网络-集合
粉丝
共同好友
兴趣爱好
标签
5.消息队列-发布订阅
配合ELK缓存收集来的日志

#

安装redis

  1. 准备安装和数据目录
    mkdir -p /data/soft
    mkdir -p /opt/redis_cluster/redis_6379/{conf,logs,pid}

2.下载redis安装包
cd /data/soft
wget http://download.redis.io/releases/redis-5.0.7.tar.gz

3.解压redis到/opt/redis_cluster/
tar xf redis-5.0.7.tar.gz -C /opt/redis_cluster/
ln -s /opt/redis_cluster/redis-5.0.7 /opt/redis_cluster/redis

4.切换目录安装redis
cd /opt/redis_cluster/redis
make && make install

5.编写配置文件
vim /opt/redis_cluster/redis_6379/conf/6379.conf
添加:
bind 127.0.0.1 192.168.8.10
port 6379
daemonize yes
pidfile /opt/redis_cluster/redis_6379/pid/redis_6379.pid
logfile /opt/redis_cluster/redis_6379/logs/redis_6379.log
databases 16
dbfilename redis.rdb
dir /opt/redis_cluster/redis_6379
保存退出

6.启动当前redis服务
redis-server /opt/redis_cluster/redis_6379/conf/6379.conf

7.关闭redis服务
redis-cli shutdown

8.登录redis
redis-cli #本机登录
redis-cli -h 192.168.8.10 -p 6379 #其他主机登录

#

redis基本操作命令
1.全局命令
KEYS * #列出所有键值名,但在企业环境禁止使用
DBSIZE #查看有多少键值数
EXISTS #查看键值是否存在
EXPIRE k2 20 #设置K2过期时间为20秒,20秒后k2自动取消
PERSIST k2 #取消k2的过期时间
TTL k2 #查看k2的生命周期
TYPE #查看数据类型

2.字符串类型:string
SET k3 3 #创建键值
GET k3 #查看键值
DEL k2 #删除键值
INCR k3 #键值k3为整数,递增加1
INCRBY k3 10 #递增k3的量值10
MSET k4 v4 k5 v5 k6 v6 k7 v7 #批量创建键值
MGET k4 k5 k6 k7 #批量查看键值

3.列表:list
RPUSH list1 1 2 3 4 #创建列表list1,值为1 2 3 4
RPUSH list1 5 6 7 8 #在list1右侧添加5 6 7 8
LPUSH list1 0 #在list1左侧添加0
LRANGE list1 0 -1 #查看list1所有值
RPOP list1 #删除右侧最后一个值
LPOP list1 #删除左侧第一个值
LTRIM list1 0 2 #仅保留前3位,其他值删除

4.哈希:hash
HMSET user:1000 username zhangsan age 17 job it #创建hash键值user:1000
HGET user:1000 username #查看键值中username参数
HGET user:1000 age #查看键值中age参数
HGET user:1000 job #查看键值中job参数
HMSET user:1000 tel 18866668888 #添加值tel

5.集合:set
SADD set1 1 2 3 #创建集合set1
SMEMBERS set1 #查看集合set1
SADD set1 1 4 #为集合set1添加值1 4 ,但集合特性是去除重复,所以1无法再添加
SREM set1 1 4 #删除集合的值1 4
sadd set2 1 4 5 #创建第二个集合set2
SDIFF set1 set2 #求差集
SINTER set1 set2 #求交集
SUNION set1 set2 #求并集

#

1.redis持久化: *
RDB:生成时间点快照,保存于硬盘
优点:速度快,适合做备份,能做主从复制,单开子进程进行rdb操作不影响主业务
缺点:会有部分数据丢失

AOF:记录所有写操作命令,通过再次执行这些命令还原数据
    优点:最大程度保证数据不丢失
    缺点:日志记录量太大

2.RDB配置:
redis-cli 登录redis
bgsave rdb保存命令

vim /opt/redis_cluster/redis_6379/conf/6379.conf
添加:
save 900 1 #在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。
save 300 10 #在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。
save 60 10000 #在60秒(1分钟)之后,如果至少有10000个key发生变化,则dump内存快照

3.AOF配置
vim /opt/redis_cluster/redis_6379/conf/6379.conf
添加:
appendonly yes #启用AOF持久化
appendfilename "redis.aof" #指定AOF文件名
appendfsync everysec #每秒同步一次

4.重启redis
redis-cli shutdown
redis-server /opt/redis_cluster/redis_6379/conf/6379.conf

#

环境:
主服务器:192.168.8.10
从服务器:192.168.8.20
1.redis主从复制
为解决单点故障把数据复制到一个或多个副本副本服务器(从服务器),实现故障恢复和负载均衡

2.开启第二台服务器,安装redis
(1)把第一台服务器的redis安装目录,scp到第二台服务器上
scp -rp /opt/redis_cluster/ root@192.168.8.20:/opt
(2)在第二台服务器上,make install安装redis
cd /opt/redis_cluster/redis
make install
vim /opt/redis_cluster/redis_6379/conf/6379.conf
修改:
bind 127.0.0.1 192.168.8.20
slaveof 192.168.8.10 6379
保存退出
(3)启动服务
redis-server /opt/redis_cluster/redis_6379/conf/6379.conf
(4)主服务器上新建键值,测试从服务器自动同步

(5)从服务器在同步过程中,只能复制主数据库的数据,不能手动添加修改数据;
如果从服务器非要修改数据,需要断开同步:
redis-cli slaveof no one

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
8月前
|
存储 负载均衡 NoSQL
Redis之主从复制
【1月更文挑战第8天】主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(masterleader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave以读为主。 默认情况下,每台Redis服务器都是主节点; 且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。
222 16
|
8月前
|
NoSQL 关系型数据库 MySQL
Redis高可用之主从复制架构(第一部分)
Redis高可用之主从复制架构(第一部分)
|
8月前
|
监控 NoSQL 容灾
【Redis】主从复制
【Redis】主从复制
|
5天前
|
NoSQL 关系型数据库 Redis
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
42 14
|
6月前
|
存储 缓存 NoSQL
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
redis分布式锁、redisson、可重入、主从一致性、WatchDog、Redlock红锁、zookeeper;Redis集群、主从复制,全量同步、增量同步;哨兵,分片集群,Redis为什么这么快,I/O多路复用模型——用户空间和内核空间、阻塞IO、非阻塞IO、IO多路复用,Redis网络模型
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
|
3月前
|
存储 NoSQL 大数据
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
47 3
|
8月前
|
存储 监控 负载均衡
redis 集群 (主从复制 哨兵模式 cluster)
redis 集群 (主从复制 哨兵模式 cluster)
|
4月前
|
NoSQL 网络协议 Redis
Redis的主从复制和哨兵模式
本文详细介绍了Redis的主从复制配置、原理(包括全量复制和增量复制)以及如何搭建一主二从的Redis集群,同时还探讨了Redis哨兵模式的概念、配置文件、以及如何配置一主二从三哨兵的Redis哨兵模式,以实现高可用性。
|
5月前
|
消息中间件 存储 缓存
深入理解Redis集群主从复制原理
该文章主要探讨了Redis集群中的主从复制原理,包括为何需要主从复制、配置方法、复制流程以及一些高级特性。
深入理解Redis集群主从复制原理
|
6月前
|
NoSQL Redis
Redis 主从复制架构配置及原理
Redis 主从复制架构配置及原理
75 5