缓存动态数据
redis: 基于键值对存储数据非关系型数据库,可以用来当做动态数据缓存服务器--内存,支持数据持久化
memcahce: --不支持数据持久化
实验环境
一台LNMP 192.168.10.3
解压软件到/usr/loca名为redis
tar -zxvf redis-4.0.6.tar.gz -C /usr/local/redis
有makefile文件可以直接安装
make && make install
修改配置文件redis.conf
启动redis
redis-server redis.conf
连接redis数据库
redis-cil -p 6379 -h 192.168.10.3
redis 常用的命令
select :redis默认有16个数据库编号0-15
select:切换数据库
set :创建键值对,如果键值对存在则覆盖键值对
get:获取指定键对应的值
mset:批量创建键值对
mget:批量获得键值对
del:删除键值对
append:对指定建的值的内容进行追加
move:键值对进行迁移
keys* 批量查看键值对
flushall:清空数据库中的所有键值对
解压phpredis-master.zip
unzip phpredis-master.zip
生成configurl文件
phpize
生成makfile文件
./configure --enable-resid --with-php-config=/usr/local/php/bin/php-config
编译安装
make && make install
查看是否安装成功
ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
redis.so
service php-fpm restart 重启PHP
127.0.0.1/index.php 网页验证
vim /usr/local/php/php.ini
mysql -u root http://-p123.com 进入数据库
grant all on *.* to "root"@"192.168.10.2" identified by "http://123.com"; 授权
create databases haha; 创建库
use haha 进入库
create table test (id int,name char(20)); 创建表
insert into test values (1,"one"),(2,"two"),(3,"three"); 添加数据
exit
<?php
$redis=new Redis;
$resid->connect(“192.168.10.3”,”6379”) or die (“could not connect redis~~~”);
$query=“select * from abc.test limit 5;”;
for ($key=1; $key<=5; $++ ) {
if (! $redis->get ($key)){
$name=”mysql”;
$conn=mysql_connect( “192.168.10.3”,”root”,”123.com” );
$result=mysql_puery($puery);
while ($row=mysql_fetch_assoc($result)) {
$redis->set( $row[ “id” ], $row[ “name” ] );
}
break;
}
else{
$name=”resid”;
$data[$key]=$redis->get($key);
}
echo $name;
echo “</br>”;
for ($key=1;$key<=5;$key++) {
echo "id is $key";
ehco "</br>";
ehco "name is $data[$key]";
ehco "</br>";
}
?>
##redis群集
#redis群集中的节点可以互通,通过总线端口来通信,总线端口于redis对位提供服务端口偏移量固定为10000
#去中心化,客户端可以于任意一台redis节点相连,当客户端请求的数据不再他所连接的redis节点上时,该redis节点会将数据所在的节点ip和端口返回客户端,客户端进行新的连接并对该节点的数据进行操作
#节点之间平均分配哈希槽中的槽点,一共16384个,取值范围为0-16383,当有键值对被写入和读取时,先对键进行CRC16计算,得到的值在对16384进行取余,最终结果判断数据哪台redisi节点的槽点范围,就将数据写入到该节点或者从节点读取数据
#redis支持主从复制,一台直接点可以有多台从节点,主节点提供服务,从节点不工作,当主节点故障时,会从它的从节点中随机选取一台作为新的主节点来工作
#redis群集有投票机制,当半数以上的节点认为某一台节点不可用时,则该节点会被标记为不可用,如果该接待你没有从节点,则整个集群不可使用。
实验环境
一台基础环境部署redis伪分布式群集
复制
更改端口号:
安装ruby
yum -y install ruby
直接安装
gem install redis-3.3.0.gem
优化路径
ln -s /usr/local/redis/src/redis-trib.rb /usr/bin/
创建节点从主
redis-trib.rb create --replicas 1 192.168.10.3:7000 192.168.10.3:7001 192.168.10.3:7002 192.168.10.3:7003 192.168.10.3:7004 192.168.10.3:7005
redis-trib.rb check 192.168.10.3:7000
登录
redis-cil -h 192.168.10.3 -p 7000 -c
主从切换
kill杀死7000进程
查看节点
redis-trib.rb check 192.168.10.3:7001
添加,删除节点。
添加三个进程
添加从节点
redis-trib.rb add-node --slave要添加的节点192.168.10.3:7006 192.168.10.3:7001
添加主节点
redis-trib.rb add-node 要添加的节点192.168.10.3:7007 192.168.10.3:7001
槽点分配
redis-trib.rb reshard 192.168.10.3.7001
分配多少槽点4096
复制node-id粘贴
yes
删除节点
redis-trib.rb del-node 192.168.10.3:7001 要删除节点的node-d