redis安装及应用
Redis安装及主从配置
server2,3,4.
安装
tar zxf redis-4.0.1.tar.gz
cd redis-4.0.1
yum install -y gcc
make
make install
cd utils/
./install_server.sh
cd /etc/redis/
vim 6379.conf

/etc/init.d/redis_6379 restart
redis-cli

server3,4
主从配置(2主,3,4从)
vim /etc/redis/6379.conf

/etc/init.d/redis_6379 restart
此时在server2中redis写入,server2,3会自动复制
Redis高可用
[root@server2 ~]# cd redis-4.0.1
[root@server2 redis-4.0.1]# cp sentinel.conf /etc/redis/
[root@server2 redis-4.0.1]# cd /etc/redis/
[root@server2 redis]# vim sentinel.conf



[root@server2 redis]# scp sentinel.conf root@172.25.8.3:/etc/redis/
[root@server2 redis]# scp sentinel.conf root@172.25.8.4:/etc/redis/
[root@server2 redis]# redis-sentinel /etc/redis/sentinel.conf ##将三台机子都启动sentinel服务

server3
[root@server3 redis]# redis-sentinel /etc/redis/sentinel.conf

server4
[root@server4 ~]# redis-sentinel /etc/redis/sentinel.conf

server2:
[root@server2 ~]# redis-cli -p 26379
127.0.0.1:26379> info

此时,停止server2redis服务:
[root@server2 ~]# redis-cli
127.0.0.1:6379> SHUTDOWN
not connected>

会发现server3选举成为新的master
[root@server2 ~]# redis-cli -p 26379
127.0.0.1:26379> info

[root@server2 ~]# vim /etc/redis/6379.conf 将2作为从再次开启


[root@server2 redis]# /etc/init.d/redis_6379 start
[root@server2 redis]# redis-cli
127.0.0.1:6379> info
redis集群
[root@server2 ~]# cd /usr/local/
[root@server2 local]# mkdir cluster ##建立集群目录
[root@server2 local]# cd cluster/
[root@server2 cluster]# mkdir 700{1..6}
[root@server2 cluster]# cd 7001/
[root@server2 7001]# vim redis.conf(其余依法操作,只需修改相应port参数)

[root@server2 7001]# redis-server redis.conf ##打开集群服务
[root@server2 7001]# cd ..
[root@server2 cluster]# cp 7001/redis.conf 7002/
[root@server2 cluster]# cp 7001/redis.conf 7003
[root@server2 cluster]# cp 7001/redis.conf 7004
[root@server2 cluster]# cp 7001/redis.conf 7005
[root@server2 cluster]# cp 7001/redis.conf 7006
[root@server2 cluster]# cd 7002/
[root@server2 7002]# ls
redis.conf
[root@server2 7002]# vim redis.conf
[root@server2 7002]# redis-server redis.conf
[root@server2 7002]# cd ..
[root@server2 cluster]# cd 7003/
[root@server2 7003]# vim redis.conf
[root@server2 7003]# redis-server redis.conf
[root@server2 7003]# cd ..
[root@server2 cluster]# cd 7004/
[root@server2 7004]# vim redis.conf
[root@server2 7004]# redis-server redis.conf
[root@server2 7004]# cd ..
[root@server2 cluster]# cd 7005/
[root@server2 7005]# vim redis.conf
[root@server2 7005]# redis-server redis.conf
[root@server2 cluster]# cd 7006/
[root@server2 7006]# vim redis.conf
[root@server2 7006]# redis-server redis.conf
[root@server2 7006]# cd
[root@server2 ~]# cd redis-4.0.1
[root@server2 redis-4.0.1]# cd src/
[root@server2 src]# cp redis-trib.rb /usr/local/bin/
[root@server2 src]# cd
[root@server2 ~]# yum install rubygems-1.3.7-5.el6.noarch.rpm -y
[root@server2 ~]# yum install libyaml-0.1.3-4.el6_6.x86_64.rpm ruby-2.2.3-1.el6.x86_64.rpm ##安装依赖包
[root@server2 ~]# gem install --local redis-4.0.1.gem

[root@server2 ~]# redis-trib.rb create --replicas 1 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 127.0.0.1:7006 ##创建集群

[root@server2 ~]# redis-trib.rb check 127.0.0.1
[root@server2 ~]# redis-cli -c -p 7001
127.0.0.1:7001> set name westos
-> Redirected to slot [5798] located at 127.0.0.1:7002 ##提示内容会转到7002上
OK[root@server2 ~]# redis-cli -c -p 7001
127.0.0.1:7001> get name
-> Redirected to slot [5798] located at 127.0.0.1:7002
"westos"

[root@server2 ~]# redis-cli -c -p 7002
127.0.0.1:7002> get name
"westos"
127.0.0.1:7002>
[root@server2 ~]# redis-cli -c -p 7006
127.0.0.1:7006> get name
-> Redirected to slot [5798] located at 127.0.0.1:7002
"westos"
127.0.0.1:7002>

[root@server2 ~]# redis-cli -p 7002
127.0.0.1:7002> SHUTDOWN ##关闭一个master,会发现集群会继续运行
not connected>
[root@server2 ~]# redis-trib.rb check 127.0.0.1:7001 ##查看集群状态

[root@server2 ~]# redis-cli -c -p 7001
127.0.0.1:7001> get name
-> Redirected to slot [5798] located at 127.0.0.1:7005
"westos"
127.0.0.1:7005>
root@server2 ~]# redis-cli -c -p 7005 ##再关闭一个master,这时集群会down掉
127.0.0.1:7005> SHUTDOWN
not connected>
[root@server2 ~]# redis-cli -c -p 7001
127.0.0.1:7001> get name
(error) CLUSTERDOWN The cluster is down

Redis用作mysql缓存
Server3:redis -master
Server4:redis-slave lnmp
Server1:mysql
server1:
[root@server1 ~]# yum install -y mysql-server
[root@server1 ~]# /etc/init.d/mysqld start
[root@server1 ~]# mysql
mysql> show databases;
mysql> grant all on test.* to redis@'%' identified by 'westos'; ##远程登陆用户授权

server4;
[root@server4 ~]# cd redis/
[root@server4 redis]# rpm -ivh nginx-1.8.0-1.el6.ngx.x86_64.rpm 安装nginx与php
[root@server4 redis]# yum install -y php*
[root@server4 redis]# cd /etc/nginx/
[root@server4 nginx]# cd
[root@server4 ~]# vim /etc/php.ini
修改时区

[root@server4 ~]# cd /etc/php.d/
[root@server4 php.d]# /etc/init.d/php-fpm start
[root@server4 php.d]# /etc/init.d/php-fpm reload
[root@server4 php.d]# cd /etc/
[root@server4 etc]# cd php-fpm.d/
[root@server4 php-fpm.d]# vim www.conf( 将29行和41行后的改为nginx)

[root@server4 php-fpm.d]# /etc/init.d/php-fpm reload
配置nginx
[root@server4 php-fpm.d]# cd /etc/nginx/
[root@server4 nginx]# cd conf.d/
[root@server4 conf.d]# vim default.conf


[root@server4 conf.d]# /etc/init.d/nginx start
[root@server4 conf.d]# cd /usr/share/nginx/html/
[root@server4 html]# vim index.php (编辑一个PHP默认访问页面)
访问172.25.8.4

[root@server4 ~]# cd redis/ ##(这里有一个写好的测试页面)
[root@server4 redis]# cp test.php /usr/share/nginx/html/
[root@server4 redis]# cd /usr/share/nginx/html/
[root@server4 html]# vim test.php

[root@server4 html]# yum install unzip -y
[root@server4 ~]# cd redis/
[root@server4 redis]# unzip phpredis-master.zip
[root@server4 redis]# cd phpredis-master
[root@server4 phpredis-master]# phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
[root@server4 phpredis-master]# ./configure
[root@server4 phpredis-master]# make
[root@server4 phpredis-master]# make install
cd /etc/php.d/
[root@server4 php.d]# ls
curl.ini json.ini mysql.ini pdo_sqlite.ini zip.ini
fileinfo.ini mbstring.ini pdo.ini phar.ini
gd.ini mysqli.ini pdo_mysql.ini sqlite3.ini
[root@server4 php.d]# cp mysql.ini redis.ini
[root@server4 php.d]# vim redis.ini

[root@server4 php.d]# /etc/init.d/php-fpm reload
[root@server4 php.d]# php -m |grep redis
[root@server4 ~]# cd redis/ ##有一个自己写好用来测试的test.sql
[root@server4 redis]# mysql -h 172.25.8.1 -u redis -p < test.sql ##导入到数据库中
Enter password:
server1:
mysql> use test
mysql> show tables;
mysql> select * from test;

访问web页面

至此,Redeis用作mysql缓存已完成,但会有一个问题,此时如果在数据库中更新表中内容,redis却不会更新,会出现数据不同步的现象,此时就需要mysql通过触发器改变数据同步到redis。
通过gearman实现数据同步
server4:
[root@server4 redis]# yum install -y gearmand-1.1.8-2.el6.x86_64.rpm libgearman-* libevent-*
[root@server4 redis]# /etc/init.d/gearmand start
[root@server4 redis]# scp lib_mysqludf_json-master.zip gearman-mysql-udf-0.6.tar.gz root@172.25.8.1:
server1:
[root@server1 ~]# yum install unzip -y
[root@server1 ~]# unzip lib_mysqludf_json-master.zip
[root@server1 ~]# ls
gearman-mysql-udf-0.6.tar.gz lib_mysqludf_json-master.zip
lib_mysqludf_json-master
[root@server1 ~]# cd lib_mysqludf_json-master
[root@server1 lib_mysqludf_json-master]# ls
lib_mysqludf_json.c lib_mysqludf_json.so README.md
lib_mysqludf_json.html lib_mysqludf_json.sql
[root@server1 lib_mysqludf_json-master]# yum install gcc -y
[root@server1 lib_mysqludf_json-master]# yum install -y mysql-devel
[root@server1 lib_mysqludf_json-master]# gcc $(mysql_config --cflags) -shared -fPIC -o lib_mysqludf_json.so lib_mysqludf_json.c
[root@server1 ~]# ls
gearman-mysql-udf-0.6.tar.gz lib_mysqludf_json-master.zip
lib_mysqludf_json-master
[root@server1 ~]# cd lib_mysqludf_json-master
[root@server1 lib_mysqludf_json-master]# cp lib_mysqludf_json.so /usr/lib64/mysql/plugin/
[root@server1 lib_mysqludf_json-master]# mysql
mysql> CREATE FUNCTION json_object RETURNS STRING SONAME 'lib_mysqludf_json.so';
##注册udf函数
mysql> select * from mysql.func;

[root@server1 ~]# tar zxf gearman-mysql-udf-0.6.tar.gz
[root@server1 ~]# cd gearman-mysql-udf-0.6
[root@server1 ~]# yum install -y libgearman-* libevent-*
[root@server1 gearman-mysql-udf-0.6]# ./configure --with-mysql --libdir=/usr/lib64/mysql/plugin/
[root@server1 gearman-mysql-udf-0.6]# make
[root@server1 gearman-mysql-udf-0.6]# make install
[root@server1 ~]# mysql ##注册udf函数
mysql> CREATE FUNCTION gman_do_background RETURNS STRING SONAME 'libgearman_mysql_udf.so';
mysql> CREATE FUNCTION gman_servers_set RETURNS STRING SONAME 'libgearman_mysql_udf.so';
mysql> select * from mysql.func;

mysql> SELECT gman_servers_set('172.25.8.4:4730');

server4:
[root@server4 redis]# vim test.sql

[root@server4 redis]# mysql -h 172.25.8.1 -u redis -p < test.sql
server1:
mysql> SHOW TRIGGERS FROM test; ##查看触发器

server4:
[root@server4 redis]# tar zxf gearman-1.1.2.tgz
[root@server4 redis]# cd gearman-1.1.2
[root@server4 gearman-1.1.2]# phpize
[root@server4 gearman-1.1.2]# ./configure
[root@server4 gearman-1.1.2]# make
[root@server4 gearman-1.1.2]# make install
[root@server4 gearman-1.1.2]# cd /etc/php.d/
[root@server4 php.d]# cp redis.ini gearman.ini
[root@server4 php.d]# vim gearman.ini

[root@server4 php.d]# /etc/init.d/php-fpm reload
[root@server4 php.d]# cd
[root@server4 ~]# cd redis/
[root@server4 redis]# cp worker.php /usr/local/
[root@server4 redis]# cd /usr/local/
[root@server4 local]# vim worker.php

[root@server4 local]# nohup php /usr/local/worker.php &
server1:
mysql> use test;
mysql> update test set name='hello' where id=1; ##更新数据
mysql> select * from test;

server3:
[root@server3 redis]# redis-cli
127.0.0.1:6379> get 1
"hello"
页面访问;
172.25.8.4/test.php

Ok。
redis安装及应用的更多相关文章
- Redis安装测试(待完善)
1 Redis安装 在网址http://redis.io/下载redis-3.2.3.tar.gz,解压. 进入解压目录 编译和安装,具体配置项可参考自带的README.md文件 make test ...
- Redis安装及实现session共享
一.Redis介绍 1.redis是key-value的存储系统,属于非关系型数据库 2.特点:支持数据持久化,可以让数据在内存中保存到磁盘里(memcached:数据存在内存里,如果服务重启,数据会 ...
- windows 环境下的redis安装
Redis安装 1.由于是练习,所以就在windows下安装的环境,并没有在LINUX服务器上装,但是知识点是一样的 安装流程: a.下载地址:https://github.com/MSOpenTec ...
- CentOS7— Redis安装(转和延续)
Part I. Redis安装(转载部分) 一.安装 wget http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.t ...
- php redis 安装篇(windows 7)
人人都说redis比memcached好,但是没有实际体验过,概念还是比较模糊,今天就先把redis安装好,后面的体验再分享,由于php已经有了很好的扩展库支持,所以redis安装非常方便,下面是wi ...
- linux下的redis安装以及php添加redis扩展
一.redis的安装 win版本详见: 下面是linux版本的安装步骤: step1.下载 http://redis.io/download下载完后直接make然后make install,注意sud ...
- CentOS 6.6下Redis安装配置记录
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/120.html?1455855209 在先前的文章中介绍过redis,以下 ...
- Redis安装配置与Jedis访问数据库
一.NOSQL概要 NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库.NoSQL数据库的四大分类 键值(Key-Value)存储数据库 这一类数据 ...
- Redis总结(一)Redis安装
最近项目中需要使用Redis,刚好这两天有时间,便总结记录一下Redis的安装,以及如何在.NET中使用Redis. Redis是一个用的比较广泛的Key/Value的内存数据库.目前新浪微博.Git ...
- Redis-cluster集群【第一篇】:redis安装及redis数据类型
Redis介绍: 一.介绍 redis 是一个开源的.使用C语言编写的.支持网络交互的.可以基于内存也可以持久化的Key-Value数据库. redis的源码非常简单,只要有时间看看谭浩强的C语言,在 ...
随机推荐
- taglib标签在web.xml文件中报错的解决办法
报错的原因分析: 在jsp2.0中,且2.4版的DTD验证中,taglib描述符,正确写法是放到<jsp-config></jsp-config>描述符中.所以,我们的tagl ...
- 第二天:tomcat体系结构和第一个Servlet
1. 打war包 2. Tomcat体系再说明: 问题:如何去配置默认主机??? 3.tomcat和servlet在网络中的位置 4. servlet快速入门案例 1).开发s ...
- 数据库访问优化漏斗法则- 四、减少数据库服务器CPU运算
数据库访问优化漏斗法则这个优化法则归纳为5个层次:1.减少数据访问次数(减少磁盘访问)2.返回更少数据(减少网络传输或磁盘访问)3.减少交互次数(减少网络传输)4.减少服务器CPU开销(减少CPU及内 ...
- 2-2 zookeeper下载、安装以及配置环境变量
https://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/ FTP的软件:FileZilla Client 登录腾讯云服务器tail /va ...
- day70-oracle PLSQL_01基本语法
PLSQL是一种程序,和java一样都是一种程序. sql developer是基于java的jdbc连接数据库.根据java的jdbc,只要有数据库的驱动,就可以连接这个数据库.这个工具默认不需要任 ...
- jquery获取元素在文档中的位置信息以及滚动条位置(转)
jquery获取元素在文档中的位置信息以及滚动条位置 http://blog.csdn.net/qq_34095777/article/details/78750886 原文链接 原创 201 ...
- 开发同事 Linux 实用基本操作
Linux 有复杂的体系,有很多的命令,开发同事日常开发时,不像运维同事需要熟练使用很多命令. 下面记录下我在工作中,常用的基本命令: 一 日志查看 对于开发同事来说,日常工作中,Linux 中最常用 ...
- opencv 基本数据结构
转自:http://www.cnblogs.com/guoqiaojin/p/3176692.html opencv 基本数据结构 DataType : 将C++数据类型转换为对应的opencv数 ...
- C++ 结构体的构造函数和析构函数
在C++中除了类中可以有构造函数和析构函数外,结构体中也可以包含构造函数和析构函数,这是因为结构体和类基本雷同,唯一区别是,类中成员变量默认为私有,而结构体中则为公有.注意,C++中的结构体是可以有析 ...
- ASP.NET网页动态添加数据行
一看到这标题<ASP.NET网页动态添加数据行>,想起来似乎有点难实现.因为网页的周期性原因,往往在PostBack之后,状态难于有所保留.但Insus.NET又想实现这样的效果,用户点击 ...