
发表日期: 2021-04-26 10:45:20 浏览次数:94
溧阳微信公众号开发【溧阳网络推广】溧阳建站、溧阳网站维护、溧阳网页制作、溧阳微信小程序代运营公司
溧阳,隶属江苏省,由常州市代管的县级市 ,位于江苏省西南部,地处长江三角洲,与苏、浙、皖三省接壤。是南京都市圈成员城市 [1] ,宁杭生态经济带上的重要副中心城市和示范区。位于北纬31°09'-31°41',东经119°08'-119°36',东邻宜兴,西与高淳、溧水毗邻,南与安徽省的广德、郎溪接壤,北接句容、金坛,南北长59.06千米,东西宽45.14千米,土地总面积1535.87平方千米。 [2] 溧阳属亚热带季风气候,干湿冷暖,四季分明,雨量充沛,无霜期长,全年平均温度17.5℃,其中:一月份3.2℃,七月份31.1℃。年均降水量1149.7毫米。其中,一月份42.2毫米,七月154.1毫米。大约日照时间,一月份137.6小时,七月份229小时。 [3]
溧阳有耕地面积112万亩,林地32.8万亩,河流和湖泊42.6万亩。物产丰富,是著名的“鱼米之乡”、“丝绸之乡”、“茶叶之乡”,经济连续多年名列全国百强县(市)。溧阳文化属吴越文化,溧阳人属江浙民系使用吴语。盛产稻、麦、油、茶、蚕茧、螃蟹、板栗、西瓜、毛竹等。 [4] 2020年10月9日,被生态环境部命名为第四批“绿水青山就是金山银山”实践创新基地。2020年11月,入选水利部第一批深化小型水库管理体制改革样板县(市、区)名单。2020年12月,社科院发布《全国县域经济综合竞争力100强》,溧阳排名第25 [5] 。
例如,全部表的主键都固定为id时:
<?phpabstract class Common_Model_NotORM extends PhalApi_Model_NotORM {
protected function getTableKey($table) {
return 'id';
}}复制代码当有其他场景需要时,也可以定制自己的Model基类。通过提供自己的层超类,封装一些项目中公共的操作,以简化项目开发。
在学习了持久化的数据库存储后,接下来让我们继续学习缓存。在很多情况下,都需要用到缓存。如对重复获取但变化不大的数据进行缓存以提供服务器的响应能力,又如为数据库服务器减轻压力等。另一方面,缓存也是有其弊端的。因为延时导致数据不能实时更新,或者在需要更新的场景下得不到实时更新。如在接口调试、单元测试或者预览时,当然这些都可以通过一些技巧来获得。这里,将从简单的缓存、再到高速缓存、最后延伸到多级缓存,逐步进行说明。
这里所指的简单缓存,主要是存储在单台服务器上的缓存,例如使用系统文件的文件缓存,PHP语言提供的APCU缓存。因为实现简单,且部署方便。但其缺点也是明显的,如文件I/O读写导致性能低,不能支持分布式。所以在没有集群服务器下是适用的。
例如,当需要使用文件缓存时,先在DI容器中注册对文件缓存到DI()->cache。
//$ vim ./Public/init.php DI()->cache = new PhalApi_Cache_File(array('path' => API_ROOT . '/Runtime', 'prefix' => 'demo'));复制代码初始化文件缓存时,需要传入配置数组,其中path为缓存数据的目录,可选的前缀prefix,用于区别不同的项目。
然后便可在适当的场景使用缓存。
// 设置DI()->cache->set('thisYear', 2015, 600);// 获取,输出:2015echo DI()->cache->get('thisYear');// 删除DI()->cache->delete('thisYear');复制代码可以看到,在指定的缓存目录下会有类似以下这样的缓存文件。
$ tree ./Runtime/cache/./Runtime/cache/└── 483 └── 11303fe8f96da746aa296d1b0c11d243.dat复制代码
安装好APCU扩展和设置相关配置并重启PHP后,便可开始使用APCU缓存。APCU缓存的初始化比较简单,只需要简单创建实例即可,不需要任何配置。
DI()->cache = new PhalApi_Cache_APCU();复制代码
其他使用参考缓存接口,这里不再赘述。
这里的高速集群缓存,是指备分布式存储能力,并且进驻内存的缓存机制。高速集群缓存性能优于简单缓存,并且能够存储的缓存容量更大,通常配置在其他服务器,即与应用服务器分开部署。其缺点是需要安装相应的PHP扩展,另外部署缓存服务,例如常见的Memcached、Redis。若需要考虑缓存落地,还要进一步配置。
若需要使用Memcache/Memcached缓存,则需要安装相应的PHP扩展。PHP 7中已经逐渐不支持Memcache,因此建议尽量使用Memcached扩展。
如使用Memcached:
DI()->cache = new PhalApi_Cache_Memcached(array('host' => '127.0.0.1', 'port' => 11211, 'prefix' => 'demo_'));复制代码初始化Memcached时,需要传递一个配置数组,其中host为缓存服务器,port为缓存端口,prefix为可选的前缀,用于区别不同的项目。配置前缀,可以防止同一台MC服务器同一端口下key名冲突。对于缓存的配置,更好的建议是使用配置文件来统一管理配置。例如调整成:
DI()->cache = new PhalApi_Cache_Memcached(DI()->config->get('sys.mc'));复制代码相应的配置,则在./Config/sys.php中的mc选项中统一维护。
完成了Memcached的初始化和注册后,便可考缓存接口进行使用,这里不再赘述。Memcache的初始化和配置和Memcached一样。
实际项目开发中,当需要连接多个Memcache/Memcached实例,可以在单个实例配置基础上采用以下配置:
$config = array( 'host' => '192.168.1.1, 192.168.1.2', //多个用英文逗号分割 'port' => '11211, 11212', //多个用英文逗号分割 'weight' => '20, 80', //(可选)多个用英文逗号分割);DI()->cache = new PhalApi_Cache_Memcached($config);复制代码
上面配置了两个MC实例,分别是:
192.168.1.1,端口为11211,权重为20
192.168.1.2,端口为11212,权重为80
其中,权重是可选的。并且以host域名的数量为基准,即最终MC实例数量以host的个数为准。端口数量不足时取默认值11211,多出的端口会被忽略;同样,权重数量不足时取默认值0,多出的权重会被忽略。
如下,是一份稀疏配置:
$config = array( 'host' => '192.168.1.1, 192.168.1.2, 192.168.1.3', 'port' => '11210',);复制代码
相当于:
192.168.1.1,端口为11210,权重为0(默认值)
192.168.1.2,端口为11211(默认值),权重为0(默认值)
192.168.1.3,端口为11211(默认值),权重为0(默认值)
请注意,通常不建议在权重weight使用稀疏配置,即要么全部不配置权重,要么全部配置权重,以免部分使用默认权重为0的MC实例不生效。
当需要使用Redis缓存时,需要先安装对应的Redis扩展。
简单的Redis缓存的初始化如下:
$config = array('host' => '127.0.0.1', 'port' => 6379);DI()->cache = new PhalApi_Cache_Redis($config);复制代码关于Redis的配置,更多选项如下。
表2-18 Redis连接配置项
Redis配置项 | 是否必须 | 默认值 | 说明 |
|---|---|---|---|
type | 否 | unix | 当为unix时使用socket连接,否则使用http连接 |
socket | type为unix时必须 | 无 | unix连接方式 |
host | type不为unix时必须 | 无 | Redis域名 |
port | type不为unix时必须 | 6379 | Redis端口 |
timeout | 否 | 300 | 连接超时时间,单位秒 |
prefix | 否 | phalapi: | key前缀 |
auth | 否 | 空 | Redis身份验证 |
db | 否 | 0 | Redis库 |
很多时候,需要结合使用简单的本地缓存和高速集群缓存,以便应对承载更大的访问量和并发量,从而提供更好的用户体验和服务器吞吐率,这种组合的方式叫为多级缓存策略。
在切换到多级缓存时,甚至最后又切换到最初的简单缓存时,我们明显希望原有的代码调用不需要做出任何调整仍能正常很好的工作。所以这就引出了一个有趣的问题:该如何组织多级缓存,才能平滑进行升级切换?

服务热线
顶部
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: http://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878