Swoft2.x 小白学习笔记 (二) --- mysql、redis
介绍swoft中
1、mysql、
2、Redis
一、mysql使用:
1、配置,在 app\bean.php文件中
'db' => [
'class' => Database::class,
'dsn' => 'mysql:dbname=webdemo;host=localhost',
'username' => 'root',
'password' => 'foto_cj1',
],
//链接池配置
'db2.pool' => [
'class' => Pool::class,
'database' => bean('db'),
'minActive' => 10,
'maxActive' => 20,
'maxWait' => 0,
'maxWaitTime' => 0,
'maxIdleTime' => 60,
],
2、生成Model,一个Model对应一张表。在 /App/Model/Entity/ 文件夹下新建文件
<?php declare(strict_types=1); namespace App\Model\Entity; use Swoft\Db\Annotation\Mapping\Column;
use Swoft\Db\Annotation\Mapping\Entity;
use Swoft\Db\Annotation\Mapping\Id;
use Swoft\Db\Eloquent\Model; /**
*
* Class Demo
*
* @since 2.0
*
* @Entity(table="demo",pool="db2.pool") //定义Model,参数是对应的表和连接池(选填)
*/
class Demo extends Model
{
/**
*默认自动添加 created_at 和 updated_at,不需要时设置为false
* @var bool
*/
public $modelTimestamps = false; /**
*
* @Id(incrementing=false)
* @Column(name="id") //定义列
*
* @var int
*/
private $id; /**
* @Column(name="name")
*
* @var string|null
*/
private $name; /**
* @param int $id
*
* @return void
*/
public function setId(int $id): void
{
$this->id = $id;
} /**
* @param string|null $name
*
* @return void
*/
public function setName(?string $name): void
{
$this->name = $name;
} /**
* @return int
*/
public function getId(): ?int
{
return $this->id;
} /**
* @return string|null
*/
public function getName(): ?string
{
return $this->name;
}
}
3、使用(Model)
//查询
$user = Demo::find($)->toArray(); //修改
$sdbuser = Demo::find($id);
$sdbuser->setName("cjcjcjccj");
//或者
$sdbuser->update(['name' => "dddddd"]); //删除
$result = Demo::where('id', 1)->delete(); $user = Demo::find($data["uid"]);
$result = $user->delete(); //插入
$count = new Demo();
$count->setId(mt_rand(1, 100));
$count->setName('attr');
$result = $count->save();
$nId = $count->getId(); //批量插入
$insArr = [
[
'id' => random_int(1, 100),
'name' => md5(uniqid())
],
[
'id' => random_int(1, 100),
'name' => md5(uniqid())
]
]; $result = Demo::insert($insArr);
4、DB原生使用:https://www.swoft.org/docs/2.x/zh-CN/db/builder.html
二:Redis简单使用:
1、配置:在 app\bean.php文件中
'redis' => [
'class' => RedisDb::class,
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0,
'option' => [
'prefix' => 'swoft:'
]
],
'redis.pool' => [
'class' => \Swoft\Redis\Pool::class,
'redisDb' => \bean('redis'),
'minActive' => 10,
'maxActive' => 20,
'maxWait' => 0,
'maxWaitTime' => 0,
'maxIdleTime' => 40,
]
2、使用
(1)、直接使用
Redis::set($key, $setData,$time);
Redis::get($key);
(2)、通过 @Inject注入连接池方式使用
在/App/Http/Controller/中新建文件
/**
* Class RedisController
*
* @since 2.0
* @Controller("redis")
*/
class RedisController
{
/**
* @Inject("redis.pool")
*
* @var Pool
*/
private $redis; /**
* @return array
* @RequestMapping("find") //访问路由: /redis/find
* @throws \Throwable
*/
public function find()
{
$us = $this->redis->get('user');
if($us)
$this->redis->set('user', ["name" => "gimi", "age" => ""],120); return $us;
}
}
查看文档:
https://www.swoft.org/docs/2.x/zh-CN/db/index.html
https://www.swoft.org/docs/2.x/zh-CN/redis/index.html
Swoft2.x 小白学习笔记 (二) --- mysql、redis的更多相关文章
- Swoft2.x 小白学习笔记 (一) ---控制器
Swoft通过官方文档进行学习,这里不做介绍,直接上手. 涉及到Swoft方面:(配置.注意的坑) 1.控制器(路由.验证器.中间件) 2.mysql (Model使用).Redis配置及通用池 3 ...
- Redis学习笔记(二):Redis集群
集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能. 1.节点 一个节点就是一个运行在集群模式下的Redis服务器.启动Redis服务器时,通过判断cluster-enabl ...
- Swoft2.x 小白学习笔记 (四) --- RPC
介绍 swoft 中 RPC使用:搭建访问服务端和客户端 RPC服务端: 一.配置,在文件 /app/bean.php中添加 return [ 'rpcServer' => [ 'class' ...
- Swoft2.x 小白学习笔记 (三) --- Task、协程
介绍swoft中 1.Task 2.协程 一:Task任务: 1.配置,在 app/bean.php文件中加入 'httpServer' => [ // ... 'on' => [ Swo ...
- python3.4学习笔记(二十五) Python 调用mysql redis实例代码
python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...
- python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法
python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...
- Redis学习笔记二 (BitMap算法分析与BitCount语法)
Redis学习笔记二 一.BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身.我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省 ...
- [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计
源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...
- Django学习笔记二
Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由dj ...
随机推荐
- ICEM-叶轮泵腔(2D转3D)
原视频下载地址:https://yunpan.cn/cqUfdgMPzyr5y 访问密码 bb4f
- redis5种数据结构讲解及使用场景
string list hash set zset 探究 Redis 4 的 stream 类型 redis提供了5中数据结构,理解每种数据结构的特点对于redis开发运维非常重要. 一.字符 ...
- 制作 ESXI6.7 U盘安装盘并用其安装
工具 UltraISO :软碟通官网下载 EXSI镜像文件:http://ddl6.digiboy.ir/vmware/6.7/VMware-VMvisor-Installer-6.7.0-816 ...
- js中的一些隐式转换和总结
js中的不同的数据类型之间的比较转换规则如下: 1. 对象和布尔值比较 对象和布尔值进行比较时,对象先转换为字符串,然后再转换为数字,布尔值直接转换为数字 [] == true; //false [] ...
- yolov1, yolo v2 和yolo v3系列
目标检测模型主要分为two-stage和one-stage, one-stage的代表主要是yolo系列和ssd.简单记录下学习yolo系列的笔记. 1 yolo V1 yolo v1是2015年的论 ...
- Centos7.4服务器安装Laravel5.7详细讲解(2018-10-27)
一.在阿里云或者腾讯云选择Centos7并购买服务器 二.安装宝塔面板和php运行环境 1.输入命令 yum install -y wget && wget -O install.sh ...
- 简易的CRM系统案例之Struts2+JSP+MySQL版本
对简易的CRM系统案例之Servlet+Jsp+MySQL版本改进 Servlet优化为Struts2 学习 <?xml version="1.0" encoding=&qu ...
- 浅析angular,react,vue.js jQuery-1
作者:尚春链接:https://www.zhihu.com/question/38989845/answer/79201080来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出 ...
- -bash: netstat: 未找到命令
[root@localhost ~]# netstat -lunpt -bash: netstat: 未找到命令 [root@localhost ~]# yum -y install net-tool ...
- java递归删除目录下所有内容
java递归删除目录下所有内容 private static boolean deleteDir(File dir) {if (dir.isDirectory()) { String[] ...