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 ...
随机推荐
- JavaScript 字符串转数字(整数,浮点数,进制转换)
下面是使用parseFloat()方法的示例: parseFloat("1234blue"); //returns 1234.0 parseFloat("0xA" ...
- 2018-2019-2 网络对抗技术 20165202 Exp7 网络欺诈防范
博客目录 一.实践目标 二.实践内容 简单应用SET工具建立冒名网站 (1分) ettercap DNS spoof (1分) 结合应用两种技术,用DNS spoof引导特定访问到冒名网站.(1.5分 ...
- Mininet系列实验(六):Mininet动态改变转发规则实验
一. 实验目的 熟悉Mininet自定义拓扑脚本的编写:熟悉编写POX脚本动态改变转发规则 二.实验原理 在SDN环境中,控制器可以通过对交换机下发流表操作来控制交换机的转发行为.在本实验中,基于Mi ...
- Link static data in sql source control
You can link data that doesn't change very often to SQL Source Control. This lets you commit data ch ...
- 阿里巴巴微服务与配置中心技术实践之道 原创: 坤宇 InfoQ 2018-02-08
阿里巴巴微服务与配置中心技术实践之道 原创: 坤宇 InfoQ 2018-02-08
- Maven中的SnapShot版本和Release版本
# Maven中的SnapShot版本和Release版本 ## 区别 - SnapShot 快照版本- Release 发布版本 ## 重要区别 - 本地获取这些依赖的机制不同,如果是快照版本,Ma ...
- js根据数据条数与每页多少条数据计算页数,js前端计算页数
/** *根据数据条数与每页多少条数据计算页数 * totalnum 数据条数 * limit 每页多少条 */ function pageCount (totalnum,limit){ ...
- PorterDuffXfermode之PorterDuff.Mode.DST_IN
package com.loaderman.customviewdemo.view; import android.animation.ValueAnimator; import android.co ...
- pytorch中的学习率调整函数
参考:https://pytorch.org/docs/master/optim.html#how-to-adjust-learning-rate torch.optim.lr_scheduler提供 ...
- LeetCode_172. Factorial Trailing Zeroes
172. Factorial Trailing Zeroes Easy Given an integer n, return the number of trailing zeroes in n!. ...