php安装redis扩展及操作redis

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41179401/article/details/84705395

                              php安装redis扩展及操作redis

关于redis使用终端可以使用但是浏览器页面无法使用的情况

Redis是远程的基于内存的非关系型数据库。

下载redis

wget download.redis.io/releases/redis-5.0.2.tar.gz

解压

tar –xvf download.redis.io/releases/redis-5.0.2.tar.gz

解压后进入解压后的目录 执行make编译

再执行 make install安装

如果提示出错缺少gcc tcl自行安装

运行时要配合配置文件

复制配置文件 :

cp redis.conf /home/redis.conf

修改这个文件

Daemonize no改为yes 意思是redis将作为后台系统

Port 9379修改成7200或其他可不改;

运行:redis-server的绝对路径配合配置文件
redis-server /home/redis.conf

验证是否运行 ps aux|grep redis-server

进入客户端:redis-cli -h 127.0.0.1 -p 7200

Redis的五种数据类型

1 string 类型 : 存储一个字符串或整型

使用set 设置一个字符串 set a  = 1;

使用get 获取一个字符串的值 get a

使用incr 进行自增 incr a

使用incrby 进行有步长的自增 incrby a 2

使用decr进行自减 decr a

使用decrby进行有步长的自减

2 list类型 (左边推入元素右边获取元素) 存储一个序列集合用于队列

从左边push一个元素 lpush list1 1

从左边push一个元素lpush list1 2

从右边pop一个元素rpop list1   结果是1

查看元素个数 llen list1 结果是1 因为从右边取出了一个

List可以有重复的元素

 

3 set类型 一个无序集合每个元素都不一样

向set类型中添加一个元素         sadd  set1 1

向set类型中删除一个元素         srem  set1 1

查看set类型中是否含有某个元素   sismember  set1  1

查看set类型中有多少元素         scard  set1

Set类型中不能含有重复的元素

 

4 hash类型               key-value结构 key必须是字符串 比较复杂的数据结构

向hash类型中添加一个元素   hset  hash1  key1 1

从hash类型中取出对应元素   hget  hash1  key1

查看hash类型的长度            hlen  hsah1

取出多个元素                hmget hash1  key1  key2

 

5 sort set 类型操作(有序分数集) 分数和元素的映射

添加一个元素到sort set 类型 zadd  zset1  10.1  val1

添加一个元素到sort set 类型 zadd  zset1   0.9  val2

查看sort set 类型的元素个数 zcard  zset1

查看指定排名顺序 zrange  zset1  0  2  withscores

查看某个元素的排名 zrank  zset1  val1

修改某个元素 zadd  zset1  10.2  val1

如果两个元素的scroce一样就按照两个字典顺序排列

 

Php安装redis扩展和memcached差不多

使用php –m查看是否已安装redis扩展

wget https://github.com/phpredis/phpredis/archive/develop.zip

解压后 进入目录执行

/usr/local/php/bin/phpize生成configure工具

再执行 ./configure --with-php-config=/usr/local/php/bin/php-config

使用make编译安装 make && make install

结果是:Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/

而非: Installing shared extensions: /usr/lib64/php/modules/

PS 安装前必须要有phpize 和 php-config 没有则使用yum install php-devel安装phpize 和 php-config一般都有不需要安装

编辑配置文件 php –ini查看php.ini的位置是 /usr/local/php/etc/php.ini

则 vi /usr/local/php/etc/php.ini使用shift+g调到最后一行添加

/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/redis.so

保存退出 重启服务器

再次使用php –m查看是否安装成功

phpinfo查看是否存在

 

 

操作redis

参考文档 : https://github.com/phpredis/phpredis

Redis类的命名空间是根

Phpredis的命令和参数基本和redis.io中的实际命令对应

 

$redis = new \Redis();

$redis->connect(‘127.0.0.1’,7200);

如果报错:

Uncaught exception 'RedisException' with message 'Connection refused' in /home/wwwroot/default

看看redis服务有没有启动

String操作

$redis->set("string1","val1");

$val1 =  $redis->get("string1");

echo $val1;

echo "\n";

$redis->set("string1",4);

$redis->incr("string1");

$val2 = $redis->get("string1");

echo $val2;

终端运行 :  php a.php

 

List类型操作 注意大小写

$redis->lPush("list1",'a');

$redis->lPush("list1",'b');

echo $redis->rPop("list1");  //a

 

set类型操作

$redis->sAdd("set1","a");

$redis->sAdd("set1","b");

$val3 = $redis->sCard("set1");

var_dump($val3);

$val4 = $redis->sMembers("set1");

var_dump($val4);

 

hash类型操作

$redis->hSet("drever1",'age',21);

$redis->hSet("drever1",'name','xiaoming');

echo $redis->hGet('drever1','age');

var_dump($redis->hMget('drever1',array('age','name')));

 

//sort set操作

$redis->zAdd('zset1',100,'xiaoming');

$redis->zAdd('zset1',90,'xiaohong');

$redis->zAdd('zset1',95,'xiaowang');

var_dump($redis->zRange('zset1',0,-1));               //-1表示全部 0从第一个开始 从低到高

var_dump($redis->zRevRange('zset1',0,-1));         //从到低

redis的主从复制,读写分离

模式:一个主服务器,两个从服务器

首先复制两个配置文件作为从服务器的配置文件例如

cp /root/redis-5.0.2/redis.conf /root/redis-5.0.2/redis6380.conf

cp /root/redis-5.0.2/redis.conf /root/redis-5.0.2/redis6381.conf

然后再修改内容 两个文件都要修改 改成对应的端口及名字

pidfile /var/run/redis6380.pid

port 6380

dbfilename dump6380.rdb    //这个两个配置文件只要一个写就行了 另一个关闭save 900 1 ...三行

slaveof <masterip><masterport> 打开 改成 slaveof localhost 6379   就是主服务器的redis端口

如果没有slaveof就是replicaof

开启只读,默认打开上面的slaveof即配置好了只读

关闭aof  appendonly no

再修改主配置文件

由于有一个从从服务器产生rdb所以不用产生rdb注释掉save 900 1...三行

开启aof  appendonly yes

然后打开三个redis服务测试在主服务器里创建一个key在其他两个客户端看看能不能收到,能不能修改

 PS

 主服务器设置密码

 requirepass 密码

从服务器使用密码授权

 masterauth 密码

从服务器客户端连接成功后使用auth 密码  才可获取主服务器的值

猜你喜欢

转载自blog.csdn.net/qq_41179401/article/details/84705395