--- 内容持续更新 ---
小型电商:
静态模板是固定的 数据库中的数据全量喧嚷到模板中, 下次请求来了直接返回, 速度也很快;
当数据上亿的时候, 如果模板改定, 把这些所有的数据在 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 在不使用备份的情况下会产生缓存雪崩问题;
--- 恢复内容结束 ---
来源: https://www.cnblogs.com/gxyandwmm/p/9499225.html