模块化开发_php中使用redis

redis

介绍和安装

redis数据库,支持数据持久化,常用与分布式锁,支持事务,持久化,非关心型数据库
区别:
关系型数据库:硬盘,安全,结构简单,易于理解,浪费空间
非关系型数据库:内存,断电丢失数据,读写速度快,
内存的速度是硬盘的100倍
redis:用于缓存压力,提升网站访问速度
三种类型:持久化(将数据保存到硬盘中,再开机再读取),支持多种类型(5种),支持储存
作用:
高性能,先读缓存再读数据库
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
高并发,mysql难以处理
redis中有list类型,其中放10个值,访问一个放一个,有效解决高并发请添加图片描述

直接操作缓存能够承受的请求是远远大于直接访问数据库
redis和memcached的区别
memcached也是非关系型数据库
在这里插入图片描述

安装:
phpstudy中点击redis,reids管理工具,启用就点启用

5中种数据类型

key value
list
set
zset
hash
首先启动redis输入指令
redis-cli

字符串类型

然后传入值set sex man
这里sex就是键,man就是值
keys 就是读取所有数据
keys a
模糊查询
keys *x也是模糊
setex name 10 ding
设置一个十秒钟的值
一些基础操作
在这里插入图片描述

队列类型

简单的字符串列表,可以添加或去除一个元素到头部或者尾部
队列的操作具有原子性,一次只能操作一个值
操作类似羽毛桶放取羽毛球
解决高并发问题
队列中一个列表可以装40亿个元素
首先,创建队列
lpush llllll bbbbb yyyy头部入队2个值
目前yyyy在第一个
lrange lllll 1 100 查看lllll队列 从第一个查看1000个
rpush 尾部入队 lllll aaaaa vvvvv
获取队列长度和入队出队
在这里插入图片描述

集合

sadd class 1 2 3 6 5 8 创教名字叫class的集合
集合成员是唯一的,不能放同名的值
集合的查看添加
在这里插入图片描述

交集并集
删除
在这里插入图片描述

有序集合

前面多给一个权重值
在这里插入图片描述

权重值一并取出

哈希

有字段有值的字段表
hmset class3 name ding sex man age 14
添加查看删除
在这里插入图片描述

持久化

Redis Save
查看与修改备份路径
在这里插入图片描述

save命令后数据库问将会存入指定的文件夹内
然后将文件夹内的文件放入redis目录下重启服务就可以使用数据库

事务

开启事务multi
事务的开启与存入数据,与取消事务
在这里插入图片描述

密码
查看密码

config get requirepass

设置密码
config get requirepass “密码”

然后操作就需要密码
输入密码是auth 密码
但是这里设置的是临时密码
客户端设置才是持久密码
或者找到配置文件conf
在这里插入图片描述

可以新建配置文件redisconf
然后用配置此文件的配置打开redis
redis-cli
然后就需要输入配置的密码

集群哨兵

用到集群的原因是一台服务器不够用
主从模式
可以悬选择升级服务器,选择带宽更多的服务器,或者买一个服务器做集群
集群更加容易实现
有三种模式,主(写)从(读)模式,
因为主服务器负责写的·功能宕机后·1整个服务会挂掉
所以有哨兵机制
哨兵查看到主服务器死了就会去选择一个服务器当主服务器,原来服务器上线当从服务器
一个哨兵对应一个服务器

操作redis

家PHP中需要加扩展
手动版:
在这里插入图片描述

进入这里的配置文件
没有就加这一句
在这里插入图片描述

自动版本:
在小皮面板中
打开
在这里插入图片描述

public function index(){
        //php操作redis
        //redis类在开启的状态下才能使用 扩展没有开启会提示undefind class
        $redis = new \Redis();
        //配置redis的服务器端口
        $redis->connect('127.0.0.1','6379');
        //如有密码则需要配置
//        $redis->auth();//输入密码
        $redis->set('name','ding');
        dump($redis->get('name'));
    }

同服务器下可以共同访问到redis文件

高并发和持久化
新建表红包
mysql
先判断数据库中红包数量
在这里插入图片描述

新建队列
新建红包队列
在这里插入图片描述

此链接点击后就会生成5个红包
在这里插入图片描述

这里是判断是否还有红包

reids高性能用法
存储到cache
在这里插入图片描述

30秒有效期
优化后
在这里插入图片描述

代码

<?php

namespace app\admin\controller;

use think\Db;
use think\facade\Cache;

class Test
{
    public function index(){
        //php操作redis
        //redis类在开启的状态下才能使用 扩展没有开启会提示undefind class
        $redis = new \Redis();
        //配置redis的服务器端口
        $redis->connect('127.0.0.1','6379');
        //如有密码则需要配置
//        $redis->auth();//输入密码
        $redis->set('name','ding');
        dump($redis->get('name'));
    }
    public function other(){
        //tp方式使用redis
        //进入config文件夹找到cache打开
        //切换缓存类型
        $redis =  Cache::store('redis_ding');
        $redis->set('age',19);
        $redis->set("mid",1,30);//定时失效
        dump($redis->   get('mid'));
        //集合
        $redis->sadd('class1','好二篇');
        dump($redis->smembers('class1'));


    }
    //使用模型进行分类查询
    public function ss(){

        $sql = "SELECT cate_id, COUNT(*) AS order_count FROM tp_article GROUP BY cate_id";

        $result = Db::query($sql);

        $id = input('id');

        foreach($result as $row) {
            if($row['cate_id'] == $id) {
                foreach($row as $key => $value) {
                    echo ($key.'='.$value);
                }
            }
        }

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
关于MyQEE MyQEE是一个开源、快速、优雅的轻量级PHP框架,支持HMVC模式,建立在PHP5.2基础之上,支持多项目管理开发,数据库内置自动主从分离功能,MySQL支持事务操作功能并且支持自动嵌套功能,多驱动设计灵活适应各种环境。点击访问 [MyQEE入门指引](./manual/guide/zh-cn/starting.md)。   拒绝粗糙不堪、复杂的代码,选择MyQEE,选择为WEB艺术家创造的PHP框架吧。   MyQEE PHP框架的特色 * MyQEE是一套轻量级的框架,但不是简陋的框架,系统具备完善的底层类库和强大的扩展功能设计; * 特有的 [HMVC](./manual/guide/zh-cn/hmvc.md) (分层MVC设计)和多项目支持,开发更灵活; * 支持时下最流行的PHP包管理器 [Composer](http://getcomposer.org/) ,并且可以使用 Composer 安装 MyQEE 提供的官方类库; * 代码一致性设计:例如 `MySQL` 和 `MongoDB` 的查询语句完全不同,但是在 MyQEE 里可以做到实现90%的一致性,你的代码既可以使用在 `MySQL` 的环境里也可以用在 `MongoDB` 上; * 包括`Database`, `Cache`, `HttpClient`, `Session`, `Storage`, `Upload` 等支持多驱动,可以适应不同环境的需求,其数据库支持 `MySQL`, `MySQLI`, `Mongo`, `SQLite`, `Postgre`,缓存支持 `Memcache`, `File`, `Redis`, `Apc`, `Database`, `SQLite`, `WinCache` 等; * 数据库提供强大的 `QueryBuilder` 功能,可实现同相同程序兼容多种数据库,解决SQL注入隐患和迁移环境后顾之忧; * 云引擎支持:支持SAE和BAE等云引擎,MyQEE网站就运行在SAE上; * 高性能和优雅的代码:经测试 MyQEE 的初始化速度比 Codeigniter 等优秀的轻量级框架还快; * 完备和详细的文档和API支持,更可简单的生成自己的团队文档; * 为团队开发而生,特别提供团队类库功能,多项目设置可以帮助团队成员之间规划独立和共用的代码; * ORM支持,提供了特有的高性能ORM; * 支持 `RESTFul`,支持 [PHPRPC](http://www.phprpc.org/); * 独创5模式运行设计:普通控制器、后台、命令行、系统调用、RESTFul的控制器相互分离,系统更加安全可靠;   安全性 * 系统内置XSS安全过滤; * 防SQL注入,强大的QueryBuilder; * 强制数据类型转换; * 普通控制器、后台、命令行、系统调用、RESTFul 5种运行模式相互隔离,安全更有保障;   MyQEE v3.0 RC2 更新日志: 本次更新在3.0RC1的基础上做了一些完善,修复了一些Bug: 完善文档生成脚本 完善模块化的拆分 数据库增加对 group_concat 的支持,MongoDB数据库驱动支持在group查询使用distinct查询,修复MongoDB驱动力查询slave在新的版本里可能导致连接失败的问题 增加 BigInt 类库 日期类库完善 HttpClient 增加upload方法,可实现上传文件功能 完善邮件类库,修复 Email 上传附件bug,支持收件人姓名 邮件的格式,完善密件抄送的功能 Session 类库优化 Swift Storage 驱动完善,token验证支持v1和v2版本,优化参数传送方式,支持url方式的配置

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值