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安装及应用的更多相关文章

  1. Redis安装测试(待完善)

    1 Redis安装 在网址http://redis.io/下载redis-3.2.3.tar.gz,解压. 进入解压目录 编译和安装,具体配置项可参考自带的README.md文件 make test ...

  2. Redis安装及实现session共享

    一.Redis介绍 1.redis是key-value的存储系统,属于非关系型数据库 2.特点:支持数据持久化,可以让数据在内存中保存到磁盘里(memcached:数据存在内存里,如果服务重启,数据会 ...

  3. windows 环境下的redis安装

    Redis安装 1.由于是练习,所以就在windows下安装的环境,并没有在LINUX服务器上装,但是知识点是一样的 安装流程: a.下载地址:https://github.com/MSOpenTec ...

  4. CentOS7— Redis安装(转和延续)

    Part I. Redis安装(转载部分) 一.安装 wget http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.t ...

  5. php redis 安装篇(windows 7)

    人人都说redis比memcached好,但是没有实际体验过,概念还是比较模糊,今天就先把redis安装好,后面的体验再分享,由于php已经有了很好的扩展库支持,所以redis安装非常方便,下面是wi ...

  6. linux下的redis安装以及php添加redis扩展

    一.redis的安装 win版本详见: 下面是linux版本的安装步骤: step1.下载 http://redis.io/download下载完后直接make然后make install,注意sud ...

  7. CentOS 6.6下Redis安装配置记录

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/120.html?1455855209 在先前的文章中介绍过redis,以下 ...

  8. Redis安装配置与Jedis访问数据库

    一.NOSQL概要 NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库.NoSQL数据库的四大分类 键值(Key-Value)存储数据库 这一类数据 ...

  9. Redis总结(一)Redis安装

    最近项目中需要使用Redis,刚好这两天有时间,便总结记录一下Redis的安装,以及如何在.NET中使用Redis. Redis是一个用的比较广泛的Key/Value的内存数据库.目前新浪微博.Git ...

  10. Redis-cluster集群【第一篇】:redis安装及redis数据类型

    Redis介绍: 一.介绍 redis 是一个开源的.使用C语言编写的.支持网络交互的.可以基于内存也可以持久化的Key-Value数据库. redis的源码非常简单,只要有时间看看谭浩强的C语言,在 ...

随机推荐

  1. 使用HttpWebRequest POST 文件,带参数

    public string HttpUploadFile(string url, string file, string paramName, string contentType, NameValu ...

  2. 第一个Dockerfile

    1. 创建docker目录 $ mkdir docker && cd docker 2. 编写Dockerfile $ vim Dockerfile [docker/Dockfile] ...

  3. CSS布局奇淫巧计之-强大的负边距

    css中的负边距(negative margin)是布局中的一个常用技巧,只要运用得合理常常会有意想不到的效果.很多特殊的css布局方法都依赖于负边距,所以掌握它的用法对于前端的同学来说,那是必须的. ...

  4. elasticsearch2.x优化小结(单节点)

    最近es一直卡顿,甚至宕机,用bigdesk看了,才晓得,es一直用的默认配置(可以看出我有多懒,先前数据量小,es足以应付,现在数据量上去后就不行了). 这里总结三方面: 1.提升jvm内存 vi ...

  5. Hibernate和JPA

    ORM(Object/Relational Mapping : 对象关系映射)就是利用描述对象和数据库之间映射的元数据,自动(且透明)的将java应用程序中的对象持久化到关系数据库的表中.HIbern ...

  6. ROS Learning-031 (提高篇-009 A Mobile Base-07) 控制移动平台 --- (操作)人机交互

    ROS 提高篇 之 A Mobile Base-07 - 控制移动平台 - (操作)人机交互 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14 ...

  7. ZBar开发详解

    博客转载自:https://blog.csdn.net/skillcollege/article/details/38855023 什么是ZBar? ZBar是一个开源库,用于扫描.读取二维码和条形码 ...

  8. Java-马士兵设计模式学习笔记-装饰者模式

    Java装饰者模式简介 一.假设有一个Worker接口,它有一个doSomething方法,Plumber和Carpenter都实现了Worker接口,代码及关系如下: 1.Worker.java p ...

  9. Redis了解

    1. 使用Redis有哪些好处? (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持string,li ...

  10. 使用database control配置数据库时 要求在当前oracle主目录中配置监听程序

    1:配置本地的环境变量 打开cmd命令界面  C:\Users\gechong>lsnrctl start 这时候报适配器错误 2.在cmd中输入 tnslsnr命令