介绍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的更多相关文章

  1. Swoft2.x 小白学习笔记 (一) ---控制器

    Swoft通过官方文档进行学习,这里不做介绍,直接上手. 涉及到Swoft方面:(配置.注意的坑) 1.控制器(路由.验证器.中间件) 2.mysql  (Model使用).Redis配置及通用池 3 ...

  2. Redis学习笔记(二):Redis集群

    集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能.   1.节点 一个节点就是一个运行在集群模式下的Redis服务器.启动Redis服务器时,通过判断cluster-enabl ...

  3. Swoft2.x 小白学习笔记 (四) --- RPC

    介绍 swoft 中 RPC使用:搭建访问服务端和客户端 RPC服务端: 一.配置,在文件 /app/bean.php中添加 return [ 'rpcServer' => [ 'class' ...

  4. Swoft2.x 小白学习笔记 (三) --- Task、协程

    介绍swoft中 1.Task 2.协程 一:Task任务: 1.配置,在 app/bean.php文件中加入 'httpServer' => [ // ... 'on' => [ Swo ...

  5. python3.4学习笔记(二十五) Python 调用mysql redis实例代码

    python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...

  6. python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法

    python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...

  7. Redis学习笔记二 (BitMap算法分析与BitCount语法)

    Redis学习笔记二 一.BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身.我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省 ...

  8. [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计

    源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...

  9. Django学习笔记二

    Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由dj ...

随机推荐

  1. Codeforces Round #597 (Div. 2)

    A - Good ol' Numbers Coloring 题意:有无穷个格子,给定 \(a,b\) ,按以下规则染色: \(0\) 号格子白色:当 \(i\) 为正整数, \(i\) 号格子当 \( ...

  2. zabbix (二)安装

    一.centos7源码安装zabbix3.x 1.安装前环境搭建 下载最新的yum源 #wget -P /etc/yum.repos.d http://mirrors.aliyun.com/repo/ ...

  3. Hadoop(4)MapReduce 任务的推测(speculative)执行

    Straggle(掉队者)是指那些跑的很慢但最终会成功完成的任务.一个掉队的Map任务会阻止Reduce任务开始执行. Hadoop不能自动纠正掉队任务,但是可以识别那些跑的比较慢的任务,然后它会产生 ...

  4. PHP + CI框架 + AdminLITE权限管理系统

    源码地址:https://github.com/yangsphp/rbac-master

  5. h5播放rtsp流

    最近由于项目上需要一个摄像头在线预览的功能,于是便琢磨了一个小玩意出来分享分享.项目是在win上,合作的人懂js,基于这样的情况,我只选择nodejs作为开发.并未使用php相关. 一开始做这个,我并 ...

  6. 自然语言处理基础与实战(8)- 主题模型LDA理解与应用

    本文主要用于理解主题模型LDA(Latent Dirichlet Allocation)其背后的数学原理及其推导过程.本菇力求用简单的推理来论证LDA背后复杂的数学知识,苦于自身数学基础不够,因此文中 ...

  7. TynSerial流的序列(还原)

    TynSerial流的序列(还原) procedure TForm1.ToolButton18Click(Sender: TObject); var serial: TynSerial; ms, ms ...

  8. [微信小程序]实现一个自定义遮罩层

    正文: 先上效果图: 点击按钮Show显示遮罩层,再次点击屏幕任何地方隐藏遮罩层; <button bindtap="showview">Show</button ...

  9. C++ private,public,protected 关键字

    第一: private,public,protected的访问范围:   private: 只能由该类中的函数.其友元函数访问,不能被任何其他访问,该类的对象也不能访问. protected: 可以被 ...

  10. 获取用户当前位置信息的两种方法——H5、微信

    在之前的 调用百度地图API的总结 中获取当前位置信息我用的是 H5 ,其实微信也提供了获取用户地理位置的方法,现将这两种方法都贴出来,看情况选择使用. 一.H5 获取当前地理位置得到经纬度 // H ...