模块化开发_php中使用redis

news2025/2/27 4:50:55

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);
                }
            }
        }

    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1027254.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mac环境下jupyter添加nbextension插件

1、没有插件的状态 2、在窗口运行命令 pip install jupyter_contrib_nbextensions 安装成功 3、添加 jupyter contrib nbextension install --user 运行后 报错 No module named notebook.base 更新版本后再添加 pip install jupyter notebook6.1.0 jupyter contrib nb…

vim缓存-交换文件

Catf1agCTF靶场 web swp 题目链接&#xff1a;http://catf1ag.cn/ 个人博客&#xff1a;https://sword-blogs.com/ 题目考点&#xff1a; vim在编辑文档的过程中如果异常退出&#xff0c;会产生缓存文件 vim 交换文件名 参考文章&#xff1a;vim手册 https://yianwillis.…

从零学习开发一个RISC-V操作系统(二)丨GCC编译器和ELF格式

本篇文章的内容 一、GCC&#xff08;GUN Compiler Collection&#xff09;1.1 GCC的命令格式1.2 GCC的主要执行步骤1.3 GCC涉及的文件类型 二、ELF简介2.1 ELF文件格式图2.2 ELF文件处理的相关工具2.3 练习 本系列是博主参考B站课程学习开发一个RISC-V的操作系统的学习笔记&…

只需4步使用Redis缓存优化Node.js应用

介绍 通过API获取数据时&#xff0c;会向服务器发出网络请求&#xff0c;收到响应数据。但是&#xff0c;此过程可能非常耗时&#xff0c;并且可能会导致程序响应时间变慢。 我们使用缓存来解决这个问题&#xff0c;客户端程序首先向API发送请求&#xff0c;将返回的数据存储…

数据库:Hive转Presto(一)

本人因为工作原因&#xff0c;经常使用hive以及presto&#xff0c;一般是编写hive完成工作&#xff0c;服务器原因&#xff0c;presto会跑的更快一些&#xff0c;所以工作的时候会使用presto验证结果&#xff0c;所以就要频繁hive转presto&#xff0c;为了方便&#xff0c;我用…

Shader实战(2):在unity中实现物体材质随时间插值渐变

目录 前言 一、shader代码 二、材质准备 三、控制代码 前言 最近想做一个物体两套材质随时间插值渐变的效果&#xff0c;本以为可以通过unity自带的Material.Lerp()实现&#xff0c;后来发现这个方法只适用于纯色的情况&#xff0c;其实与Color.Lerp()是同样的效果&#xf…

深度分析Oracle中的NULL

【squids.cn】 全网zui低价RDS&#xff0c;免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等 关键点 特殊值NULL意味着没有数据&#xff0c;它声明了该值是未知的事实。默认情况下&#xff0c;任何类型的列和变量都可以取这个值&#xff0c;除非它们有一个NOT N…

阿里云产品试用系列-云桌面电脑

无影云电脑&#xff08;WUYING Workspace&#xff09;&#xff0c;是一种易用、安全、高效的云上桌面服务。它支持快速便捷的桌面环境创建、部署、统一管控与运维。无需前期传统硬件投资&#xff0c;帮您快速构建安全、高性能、低成本的企业桌面办公体系。可广泛应用于具有高数…

[Linux入门]---文本编辑器vim使用

文章目录 1.Linux编辑器-vim使用2.vim的基本概念4.vim正常模式命令集从正常模式进入插入模式从插入模式转换为命令模式移动光标删除文字复制替换撤销更改跳至指定行 5.vim末行模式命令集5.总结 1.Linux编辑器-vim使用 vi/vim作为Linux开发工具之一&#xff0c;从它的键盘操作图…

(VS报错)已在 xxxxx.exe 中执行断点指令(__debugbreak()语句或类似调用)-解决方法C++创建对象四种方式

上述报错困扰了我好几天&#xff0c;在网上搜了一天&#xff0c;到最后还是没有解决问题 试过通过项目属性->C/C>代码生成->启用增强指令集->选择AVX&#xff0c;这种方法也没用 但问题出现在创建对象时内存分配问题上 方法一&#xff1a; 如果是这样创建对象&a…

Linux学习-HIS系统(1)

Git安装 #安装中文支持&#xff08;选做&#xff09; [rootProgramer ~]# echo $LANG #查看当前系统语言及编码 en_US.UTF-8 [rootProgramer ~]# yum -y install langpacks-zh_CN.noarch #安装中文支持 [rootProgramer ~]# vim /etc/locale.co…

将docker镜像打成tar包

# 打包 docker save -o zookeeper.tar bitnami/zookeeper:3.9.0-debian-11-r11# 解压 docker load -i zookeeper.tar

Jenkins学习笔记2

Jenkins下载安装&#xff1a; 从清华源开源镜像站上下载jenkins的安装包&#xff1a; 安装的是这个版本。 关于软件的版本&#xff0c;尽量使用LTS&#xff0c;长期支持。 首先是安装openjdk&#xff1a; yum install fontconfig java-11-openjdk[rootlocalhost soft]# java …

springcloudalibaba和nacos版本对应关系

文章目录 一、背景二、解决bug历程 一、背景 因为公司项目需要升级springcloud的版本&#xff0c;升级后服务启动时连接不上nacos&#xff08;如下图&#xff09; 二、解决bug历程 历程一 一开始直接百度“Client not connected, current status:STARTING”这个错误&#x…

【基于Thread多线程+随机数(Random)+java版本JDBC手动提交事务+EasyExcel读取excel文件,向数据库生成百万级别模拟数据】

基于Thread多线程随机数&#xff08;Random&#xff09;java版本JDBC手动提交事务EasyExcel读取excel文件&#xff0c;向数据库生成百万级别模拟数据 基于Thread多线程随机数&#xff08;Random&#xff09;java版本JDBC手动提交事务EasyExcel读取excel文件&#xff0c;向数据库…

最佳实践:TiDB 业务写变慢分析处理

作者&#xff1a;李文杰 数据架构师&#xff0c;TUG 广州地区活动组织者 在日常业务使用或运维管理 TiDB 的过程中&#xff0c;每个开发人员或数据库管理员都或多或少遇到过 SQL 变慢的问题。这类问题大部分情况下都具有一定的规律可循&#xff0c;通过经验的积累可以快速的定…

9.20号作业实现钟表

1.widget.h #include <QPainter> //画家 #include <QTimerEvent> #include <QTime> #include<QTimer> //定时器类QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Wid…

基于Xml方式Bean的配置-初始化方法和销毁方法

SpringBean的配置详解 Bean的初始化和销毁方法配置 Bean在被实例化后&#xff0c;可以执行指定的初始化方法完成一些初始化的操作&#xff0c;Bean在销毁之前也可以执行指定的销毁方法完成一些操作&#xff0c;初始化方法名称和销毁方法名称通过 <bean id"userService…

Linux 目录结构介绍

对上面的说明: root 目录 &#xff1a; linux 超级权限 root 的主目录 home 目录 &#xff1a; 系统默认的用户主目录&#xff0c;如果添加用户是不指定用户的主目录&#xff0c;默认在/home 下创建与用户同名的文件夹 bin 目录 &#xff1a; 存放系统所需要的重要命令&am…

设计模式:简单工厂、工厂方法、抽象工厂

参考 Java设计模式之创建型&#xff1a;工厂模式详解&#xff08;简单工厂工厂方法抽象工厂&#xff09; - 知乎 工厂方法 以生产手机为例&#xff0c;具体的UML图如下&#xff1a; 这种方法的优点是对于用户来说&#xff0c;不再需要面对具体的生产逻辑&#xff0c;只需要将生…