(?)企业部分之redis

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

原理整理后补

1.

yum install -y mysql-server
/etc/init.d/mysqld start
netstat -antlpe    ##mysql端口3306已开

所需软件包:redis-3.0.2.tar.gz

tar zxf redis-3.0.2.tar.gz
cd redis-3.0.2
yum install -y gcc
make
make install    ##不需要make test这一步骤,可以直接通过使用测试。make test 需要进到src/下,并装tcl

ls /usr/local/bin/

详解:

redis-server: Redis服务主程序。

redis-cli: Redis 客户端命令行工具,也可以用 telnet 来操作。

redis-benchmark: Redis 性能测试工具,用于测试读写性能。

redis-check-aof:检查 redis aof 文件完整性,aof 文件持久化记录服务器执行的所有写操作命令,用于还原数据。

redis-check-dump:检查 redis rdb 文件的完整性,rdb 就是快照存储,即按照一定的策略周期性的将数据保存到磁盘,是默认的持久化方式。

redis-sentinel:集群管理工具,主要负责主从切换。

cd utils/
./install_server.sh
/etc/init.d/redis_6379 restart
netstat -antlpe
redis-cli monitor    ##监控数据

redis-cli    ##临时,重启数据消失

要想永久的存入数据,可以在配置文件中写入。

文件目录:redis

cd /root/redis
yum install -y nginx-1.8.0-1.el6.ngx.x86_64.rpm  php-*
php -m    ##看到支持的软件
vim /etc/php.ini

修改timezone

date.timezone = Asia/Shanghai

/etc/init.d/php-fpm start
netstat -antlpe

vim /etc/php-fpm.d/www.conf

修改所属的用户和组为以下内容

39 user = nginx

41 group = nginx

/etc/init.d/php-fpm restart
vim /etc/nginx/conf.d/default.conf

在第10行index后面添加index.php

取消掉30-36行的注释,将fastcgi_param后的目录改为/usr/share/nginx/html

cd /usr/share/nginx/html/
vim index.php

内容如下:

<?php

phpinfo()

?>

/etc/init.d/nginx start

网页访问http://172.25.45.1

2.

cd /root/redis
yum install -y unzip
unzip phpredis-master.zip
cd phpredis-master
phpize 
./configure
make
make install
cd /usr/lib64/php/modules/
ls
cd /etc/php.d
cp mysql.ini redis.ini
vim redis.ini

将内容修改为以下:

extension=redis.so

/etc/init.d/php-fpm reload
php -m | grep redis

mysql 
mysql> show databases;    ##默认有一个test数据库,如没有则创建一个。
mysql> quit
cd /root/redis
mysql < test.sql
mysql 
mysql> use test;
mysql> select * from test;
mysql> grant all on *.* to [email protected] identified by ‘westos‘;
mysql> quit

mysql -uredis -pwestos
mysql> use test;
mysql> select * from test;
mysql> quit
cp /root/redis/test.php /usr/share/nginx/html/
cd /usr/share/nginx/html/
rm -rf index.php 
mv test.php index.php

网页访问http://172.25.45.1(刷新两次)

redis-cli

127.0.0.1:6379> get 1

"test1"

127.0.0.1:6379> get 2

"test2"

127.0.0.1:6379> get 3

"test3"

127.0.0.1:6379> quit

mysql 
mysql> use test;
mysql> update test set name=‘westos‘ where id=1;
mysql> quit

网页访问http://172.25.45.1(刷新)    ##值不变,不更新

redis-cli
127.0.0.1:6379> get 1
"test1"
127.0.0.1:6379> del 1
(integer) 1

网页访问http://172.25.45.1(刷新两次)    ##更新

redis-cli
127.0.0.1:6379> get 1    ##网页刷新过后才有
"westos"
127.0.0.1:6379> quit

3.

cd /root/redis
yum install -y gearmand-1.1.8-2.el6.x86_64.rpm libgearman-1.1.8-2.el6.x86_64.rpm
/etc/init.d/gearmand start
netstat -antlpe

tar zxf gearman-1.1.2.tgz
cd gearman-1.1.2
phpize
./configure
cd ..
yum install -y libgearman-devel-1.1.8-2.el6.x86_64.rpm  libevent-devel-1.4.13-4.el6.x86_64.rpm libevent-doc-1.4.13-4.el6.noarch.rpm  libevent-headers-1.4.13-4.el6.noarch.rpm
cd gearman-1.1.2
./configure
make
make install
cd /etc/php.d
cp redis.ini gearman.ini
vim gearman.ini

将内容修改为以下:

extension=gearman.so

/etc/init.d/php-fpm reload
php -m |grep gearman

yum install -y mysql-devel
cd /root/redis
unzip lib_mysqludf_json-master.zip
cd lib_mysqludf_json-master
gcc $(mysql_config --cflags) -shared -fPIC -o lib_mysqludf_json.so lib_mysqludf_json.c    ##将lib_mysqludf_json.c编译为lib_mysqludf_json.so输出
ls

mysql 
mysql> show global variables like ‘plugin_dir‘;
mysql> quit

cp lib_mysqludf_json.so /usr/lib64/mysql/plugin
mysql 
mysql> create function json_object returns string soname ‘lib_mysqludf_json.so‘;
mysql> select * from mysql.func;
mysql> quit

cd /root/redis
tar zxf gearman-mysql-udf-0.6.tar.gz
cd gearman-mysql-udf-0.6
yum install -y gcc-c++
./configure --libdir=/usr/lib64/mysql/plugin/
make
make install
cd /usr/lib64/mysql/plugin/
mysql 
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> quit

netstat -antlpe[object Object]
mysql 
mysql> select gman_servers_set(‘127.0.0.1:4730‘);
mysql> quit

cd /root/redis
vim test.sql

将触发器的注释取消,在建表和插入数据语句前加上注释

mysql < test.sql
mysql
mysql> show triggers from test;
mysql> quit

cp worker.php /usr/local/bin/
cd /usr/local/bin/
nohup php worker.php  &##后台运行worker
ps ax

mysql
mysql> use test;
mysql> update test set name=‘redhat‘ where id=1;
mysql> quit

网页访问http://172.25.19.1(刷新)##更新

redis-cli
127.0.0.1:6379> get 1
"redhat"
127.0.0.1:6379> quit

4.用slaveof实现主从复制

【server2/server3】

所需软件包:redis-3.0.2.tar.gz

tar zxf redis-3.0.2.tar.gz
cd redis-3.0.2
yum install -y gcc
make
make install
cd utils/
./install_server.sh
vim /etc/redis/6379.conf

添加以下内容:

slaveof 172.25.45.1 6379

/etc/init.d/redis_6379 restart

此时用redis-cli进行测试,查看server1中的数据是否同步到server2和server3中,更改值是否可以同步。

5.用sentinel实现集群切换

【server1】

vim /root/redis-3.0.2/sentinel.conf

第53行,将IP改为172.25.45.1(本机IP)

第82行,将30000改为10000

第115行,将180000改为60000

grep -v ^# sentinel.conf

grep -v ^# sentinel.conf > /etc/sentinel.conf
redis-sentinel /etc/sentinel.conf

scp /etc/sentinel.conf [email protected]:/etc/

scp /etc/sentinel.conf [email protected]:/etc/

redis-cli -h 172.25.45.1 -p 26379 info

【server2】

vim /etc/sentinel.conf

删除sentinel failover-timeout mymaster 60000之后的部分,并在这后面添上以下内容:

sentinel parallel-syncs mymaster 1
scp /etc/sentinel.conf [email protected]:/etc/
redis-sentinel /etc/sentinel.conf

server1:redis-cli -h 172.25.45.1 -p 26379 info

【server3】

redis-sentinel /etc/sentinel.conf

server1:redis-cli -h 172.25.45.1 -p 26379 info

测试:

【server1】

/etc/init.d/redis_6379 stop

/etc/init.d/redis_6379 start
redis-cli -h 172.25.45.1 -p 26379 info

时间: 2024-11-29 01:35:17

(?)企业部分之redis的相关文章

(三)企业部分之nginx(未完)

1.nginx安装 所需软件包:nginx-1.8.0.tar.gz tar zxf nginx-1.8.0.tar.gz cd nginx-1.8.0 yum install pcre-devel  openssl-devel  -y ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module make make install vim /root/.bash_

(四)企业部分之PHP(未完)

1.PHP安装 软件包:php-5.6.19.tar.bz2 re2c-0.13.5-1.el6.x86_64.rpm gd-devel-2.0.35-11.el6.x86_64.rpm tar jxf php-5.6.19.tar.bz2 yum install curl-devel re2c-0.13.5-1.el6.x86_64.rpm gd-devel-2.0.35-11.el6.x86_64.rpm gmp-devel net-snmp-devel libxml2-devel -y c

(?)企业部分之nagios(未完)

##nagios安装## ##可参考官网文档 1.tar jxf nagios-cn-3.2.3.tar.bz2 cd nagios-cn-3.2.3 yum install gd-devel-2.0.35-11.el6.x86_64.rpm -y groudadd nagcmd useradd -M -d /usr/local/nagious -G nagcmd nagios usermod -G nagcmd apache ./configure --with-command-group=n

(?)企业部分之ganglia(未完)

昨天的 开启禁用的服务 6.11 server3开启服务--nagios  httpd server4 server3 下载包 ganglia-web-3.4.2.tar.gz libconfuse-2.6-3.el6.x86_64.rpm libconfuse-devel-2.6-3.el6.x86_64.rpm rrdtool-devel-1.3.8-6.el6.x86_64.rpm ganglia-3.4.0.tar.gz yum install -y rpm-build rumbuild

(?)企业部分之MySQl

(1)MySQL数据的复制 MySQL数据库支持同步复制.单向.异步复制,在复制的过程中一个服务器充当主服务器,而一个或多个服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新. 请注意当你进行复制时,所有对复制中的表的更新必须在主服务器上进行.否则,你必须要小心

(五)企业部分之lnmp:memcache

1.memcached安装 yum install memcached /etc/sysconfig/memcached start yum install telnet telnet 127.0.0.1 11211 2.配置 php -m 可以看到php不支持memcached 解压memcache-2.2.5.tgz 进入解压目录 运行phpize##会自动生成configure ./configure --prefix=/usr/local/lnmp/php/modules --enabl

(六)企业部分之lnmp:jdk

1.安装jdk sh jdk-6u32-linux-x64.bin    ##原生的 mv jdk1.6.0_32/ /usr/local/java    ##生成java工作目录 vim /etc/profile export JAVA_HOME=/usr/local/java export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$PAHT:$JAVA_HOME/bin source  ~/.bash_profile

(七)企业部分之lnmp:tomcat

1.安装tomcat tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/lnmp/ cd /usr/local/lnmp/ ln -s apache-tomcat-7.0.37/ tomcat cd tomcat/ bin/startup.sh vim /usr/local/lnmp/nginx/conf/nginx.conf 在location ~ \.php$之后,添上以下内容(82行之后) location ~ \.jsp$ { proxy

(八)企业部分之lnmp:nginx+tomcat+memcached

[server1] vim /usr/local/lnmp/tomcat/conf/context.xml <Context> ...... <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:172.25.45.1:11211,n2:172.25.45.2:11211" failoverNodes="n1&