前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >亿级流量场景下,大型缓存架构的虚拟机环境搭建

亿级流量场景下,大型缓存架构的虚拟机环境搭建

作者头像
小勇DW3
发布2018-08-30 09:59:54
8670
发布2018-08-30 09:59:54
举报
文章被收录于专栏:小勇DW3小勇DW3

---内容持续更新---

小型电商:

静态模板是固定的 数据库中的数据全量喧嚷到模板中,下次请求来了直接返回,速度也很快;

 当数据上亿的时候,如果模板改定,把这些所有的数据在mysql中渲染进模板,非常耗时,不现实;

大型电商:

缓存数据生产服务;

不需要再进行全量重新渲染,直接将最新的html模板推送到nginx服务器,请求过来后直接在nginx本地进行渲染进模板中返回请求;

redis的重要性:

 虚拟机环境设置一:

虚拟机中安装CentOS

启动一个virtual box虚拟机管理软件 使用CentOS 6.5镜像即可,CentOS-6.5-i386-minimal.iso。

配置网络

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 TYPE=Ethernet ONBOOT=yes BOOTPROTO=dhcp service network restart ifconfig

BOOTPROTO=static IPADDR=192.168.0.X NETMASK=255.255.255.0 GATEWAY=192.168.0.1 service network restart

配置hosts

vi /etc/hosts 配置本机的hostname到ip地址的映射

配置SecureCRT【本人使用的Xshell 感觉也很好用】

此时就可以使用SecureCRT从本机连接到虚拟机进行操作了

关闭防火墙

service iptables stop service ip6tables stop chkconfig iptables off chkconfig ip6tables off

vi /etc/selinux/config SELINUX=disabled

关闭windows的防火墙

配置yum

yum clean all yum makecache yum install wget

------------------------------------------------------------------------------------------

在每个CentOS中都安装Java和Perl

WinSCP,就是在windows宿主机和linux虚拟机之间互相传递文件的一个工具

(1)安装JDK

1、将jdk-7u60-linux-i586.rpm通过WinSCP上传到虚拟机中 2、安装JDK:rpm -ivh jdk-7u65-linux-i586.rpm 3、配置jdk相关的环境变量 vi .bashrc export JAVA_HOME=/usr/java/latest export PATH=$PATH:$JAVA_HOME/bin source .bashrc 4、测试jdk安装是否成功:java -version

(2)安装Perl

yum install -y gcc

wget http://www.cpan.org/src/5.0/perl-5.16.1.tar.gz tar -xzf perl-5.16.1.tar.gz cd perl-5.16.1 ./Configure -des -Dprefix=/usr/local/perl make && make test && make install perl -v

为什么要装perl?我们整个大型电商网站的详情页系统,复杂。java+nginx+lua,需要perl。

perl,是一个基础的编程语言的安装,tomcat,跑java web应用

------------------------------------------------------------------------------------------

3、在4个虚拟机中安装CentOS集群

(1)按照上述步骤,再安装三台一模一样环境的linux机器 (2)另外三台机器的hostname分别设置为eshop-cache02,eshop-cache03,eshop-cache04 (3)安装好之后,在每台机器的hosts文件里面,配置好所有的机器的ip地址到hostname的映射关系

比如说,在eshop-cache01的hosts里面

192.168.31.187 eshop-cache01 192.168.31.xxx eshop-cache02 192.168.31.xxx eshop-cache03 192.168.31.xxx eshop-cache04

------------------------------------------------------------------------------------------

4、配置4台CentOS为ssh免密码互相通信【此时四台linux虚拟机可以通过ssh实现无密码输入通信】

(1)首先在四台机器上配置对本机的ssh免密码登录 ssh-keygen -t rsa 生成本机的公钥,过程中不断敲回车即可,ssh-keygen命令默认会将公钥放在/root/.ssh目录下 cd /root/.ssh cp id_rsa.pub authorized_keys 将公钥复制为authorized_keys文件,此时使用ssh连接本机就不需要输入密码了

(2)接着配置三台机器互相之间的ssh免密码登录 使用ssh-copy-id -i hostname命令将本机的公钥拷贝到指定机器的authorized_keys文件中

 虚拟机安装二:

1、安装单机版redis

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz tar -xzvf tcl8.6.1-src.tar.gz cd /usr/local/tcl8.6.1/unix/ ./configure make && make install

使用redis-3.2.8.tar.gz(截止2017年4月的最新稳定版) tar -zxvf redis-3.2.8.tar.gz cd redis-3.2.8 make && make test && make install

------------------------------------------------------------------------

2、redis的生产环境启动方案

如果一般的学习课程,你就随便用redis-server启动一下redis,做一些实验,这样的话,没什么意义

要把redis作为一个系统的daemon进程去运行的,每次系统启动,redis进程一起启动

(1)redis utils目录下,有个redis_init_script脚本 (2)将redis_init_script脚本拷贝到linux的/etc/init.d目录中(初始化目录),将redis_init_script重命名为redis_6379,6379是我们希望这个redis实例监听的端口号 (3)修改redis_6379脚本的第6行的REDISPORT,设置为相同的端口号(默认就是6379) (4)创建两个目录:/etc/redis(存放redis的配置文件),/var/redis/6379(存放redis的持久化文件,也就是后面要使用的redis备份) (5)修改redis配置文件(默认在根目录下,redis.conf),拷贝到/etc/redis目录中,修改名称为6379.conf

(6)修改redis.conf中的部分配置为生产环境

daemonize yes 让redis以daemon进程运行(守护线程,可以理解为java运行时的jvm线程,在后台进行service服务) pidfile /var/run/redis_6379.pid 设置redis的pid文件位置 【/var/run 目录下放的是各程序的pid】

port 6379 设置redis的监听端口号 dir /var/redis/6379 设置持久化文件的存储位置

(7)启动redis,执行cd /etc/init.d, chmod 777 redis_6379,./redis_6379 start

(8)确认redis进程是否启动,ps -ef | grep redis

(9)让redis跟随系统启动自动启动

在redis_6379脚本中,最上面,加入两行注释

# chkconfig: 2345 90 10

# description: Redis is a persistent key-value database

chkconfig redis_6379 on

------------------------------------------------------------------------

3、redis cli的使用

redis-cli SHUTDOWN,连接本机的6379端口停止redis进程

redis-cli -h 127.0.0.1 -p 6379 SHUTDOWN,制定要连接的ip和端口号

redis-cli PING,ping redis的端口,看是否正常

redis-cli,进入交互式命令行

存取删测试:

SET k1 v1 GET k1

del k1

redis的技术,包括4块

redis各种数据结构和命令的使用,包括java api的使用 redis一些特殊的解决方案的使用,pub/sub消息系统,分布式锁,输入的自动完成,等等 redis日常的管理相关的命令 redis企业级的集群部署和架构

 Redis在不使用备份的情况下会产生缓存雪崩问题;

---恢复内容结束---

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-08-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 小型电商:
  • 大型电商:
  •  虚拟机环境设置一:
  •  虚拟机安装二:
  •  Redis在不使用备份的情况下会产生缓存雪崩问题;
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档