Redis PHP连接Redis
admin
2023-02-07 16:20:04
0

Redis是一款高性能分布式内存数据库,支持数据持久化(可以把内存里的数据保存到硬盘中),支持list、hash、set、zset数据类型,支持master-salve模式(主从)。

部署redis服务

1、下载redis源码包,源码编译安装

    tar zxf redis-4.0.8.tar.gz

    cd redis-4.0.8

    make

    make install

2、初始化配置(redis服务端口号,主配置文件,数据库目录,pid文件,启动程序)

    ./utils/install_server.sh    #初始化

3、启动,停止服务(/etc/init.d/redis_6379 此文件是安装redis后自带脚本,用它可以启动停止服务,也可查看服务状态)

    /etc/init.d/redis_6379  start

    /etc/init.d/redis_6379  stop

    /etc/init.d/redis_6379  status

redis服务的启动和停止都是通过脚本来执行的,当修改了配置文件里面的 地址 端口 密码 则在/etc/init.d/redis_6379 脚本中需要修改这些参数,因为这个脚本也是使用redis的默认参数来启动或则停止的。


redis基本命令


redis-cli                 #连接redis服务

备注:redis-cli 不写任何参数默认使用本地环回口地址127.0.0.1和默认端口6379连接,如果修改了配置文件里的监听地址和端口则需要跟相应的参数来连接redis服务。比如我们修改redis可以允许其它用户可以使用6352端口远程登陆,则修改配置文件里的 bind 192.168.4.52  和 port 6352  ,使用 redis-cli -h 192.168.4.52  -p 6352 来登陆,如使用了密码则需加 -a选项 后面跟密码登陆。

ping                      #测试连接是否成功(返回pong说明成功)

set  name  lisi        #存储name为lisi

get  name             #获取name的值

select  2                #切换到2库(redis默认有16个库 0~15)

keys  *                  #打印所有变量

keys  a?                #打印指定表量(?代表一个字符)

EXISTS  name       #测试name是否存在(存在显示1,不存在显示0)

ttl  name              #查看name的生存时间(就是有效期是多久)

type  name           #查看name的类型

move  name  2     #把name移动到2库里

expire  name 10   #设置name的有效时间为10秒

del  name            #删除name变量

flushall                #删除所有变量

save                    #保存内存的数据到硬盘

shutdown           #关闭redis服务


配置文件解析

/etc/redis/6379.conf


prot  6379        #监听端口

bind  127.0.0.1  #监听ip地址,如果需要远程登陆需要改成本地网卡的ip地址,不能使用本地回环地址;如有多个地址用空格隔开

tcp-backlog  511 #redis允许tcp连接的总数(已建立连接的个数+正在连接的个数)

timeout  0   #连接超时时间(0为永不不超时,timeout  30 代表30秒就端开)

tcp-keepalive  300  #长连接时间(每隔300秒检查一次连接是否还在)

daemonize  yes  #守护进程方式运行(就是一直在内存里运行,no是当连接的时候才会在内存里运行)

databases  16 #数据库个数

logfile  /var/log/redis_6379.log  #pid文件

maxclients  10000 #redis服务能够处理并发连接数

dir /var/lib/redis/6379  #数据库目录(redis数据文件保存在此目录下,名字为dump.rdb)

requirepass  123456  #设置连接redis服务的密码(默认不设置,因为redis是用内存存储数据,它是架设在linux上,此服务是通过防火墙来控制的,它不负责安全)


内存清除策略

– volatile-lru 最近最少使用 (针对设置了过期时间的 key )

– allkeys-lru 删除最少使用的 key

– volatile-random 在设置了过期的 key 里随机移除

– allkeys-random 随机移除 key

– volatile-ttl (minor TTL) 移除最近过期的 key

– noeviction 不删除 写满时报错


选项默认设置

– maxmemory // 最大内存(默认单位是bytes)

– maxmemory-policy [noeviction] // 定义使用的策略 [ ] 里的策略可修改

– maxmemory-samples 5 // 选取模板数据的个数(针对 lru 和 ttl 策略) 数字越大选的越精准,对cpu消耗就大


部署LNMP+Redis

1、搭建LNMP

    a、源码编译nginx

    b、并配置nginx支持动态页面 

        location ~ \.php$ {

        root    html;

        fastcgi_pass 127.0.0.1:9000;

        fastcgi_index index.php;

        fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;   #SCRIPT_FILENAME 这里面是存客户端访问的php文件名叫什么, $document_root 告诉php要解释那个网页文件,获取客户端访问的页面

        include    fastcgi_params;

        }

    c、安装mysql

    d、安装php-fpm

2、部署PHP支持Redis

    a、安装redis服务

    b、默认php是不能连接redis,需要安装支持php连接redis模块的包php-redis

        先安装php-devel软件包会有/usr/bin/phpize这个命令,然后执行/usr/bin/phpize会在/usr/bin/下生成php-config配置文件,因为后面配置php-redis需要获取php的配置信息也就是这个配置文件         

        php-redis是源码包,需源码编译安装

        tar -zxf php-redis-2.2.4.tar.gz

          cd php-redis-2.2.4/

          ./configure --with-php-config=/usr/bin/php-config   #配置支持php-config的配置

          make

          make install

        安装完成之后会输出模块安装路径信息,我们修改php配置文件时需要写此路径,告诉它在此路径下找我们安装的模块。

    c、测试配置

        php -m  #产看php支持的模块

        修改php配置文件

        vim /etc/php/ini

        extension_dir = "/usr/bin/php-config"   #到那个路径下找模块

        extension = "redis.so"  #模块名叫什么

        重启php-fpm服务测试


php连接redis服务php脚本页面

$redis = new redis();  #生成redis类的对象,生成之后可以用这个类里面的方法

$redis->connect('127.0.0.1',6379);  #连接redis的ip地址端口号

$redis->set('redistest','666666');  #给redistest赋值为666666

echo $redis->get('redistest'); #获取redistest的值

?>






相关内容

热门资讯

工业和信息化部:依托标准牵引智... 日前,在北京举办的《人工智能 智能体互联》系列标准应用推进专题会上,工业和信息化部科技司副司长甘小斌...
原创 强... 进入下半年,子系品牌新一轮旗舰和中端性能机开始密集预热,近期更是有博主连续放出两条关键信息,分别指向...
“文学超界面”探索数字时代人文... 来源:新华网 当严肃文学的深厚内核遇见人工智能生成内容(AIGC)的影像创造力,会碰撞出怎样的火花...
以防长称已为应对伊朗局势做好“... △以色列国防部长卡茨(资料图)当地时间23日,据以色列方面消息,以色列国防部长卡茨当天表示,鉴于当前...
美参议院否决限制特朗普对伊战争... △美国国会(资料图)当地时间23日,美国参议院以49票对47票的表决结果,否决了旨在限制特朗普对伊朗...
工信部部长:搞“脱钩断链”对谁... 7月23日,2026年亚太经合组织(APEC)数字和人工智能部长会议新闻发布会在成都召开。会议主席、...
AMD展示最强AI加速器MI4... IT之家 7 月 24 日消息,今天(7 月 24 日)在美国旧金山召开的年度盛会 Advancin...
河北:知行研学度盛夏 多彩实践... 冀时新闻报道暑假期间,我省各地推出形式多样的青少年研学活动,让孩子们在实践中增长见识、锤炼品格,度过...
世界互联网大会数智健康工作组以... 7月22日,2026年世界互联网大会数字丝路发展论坛在陕西西安开幕。这是世界互联网大会连续第三年举办...
开立医疗获得实用新型专利授权:... 证券之星消息,根据天眼查APP数据显示开立医疗(300633)新获得一项实用新型专利授权,专利名为“...