小编Der*_* C.的帖子

使用Redis缓存SQL结果

我有一个基于SQL的应用程序,我喜欢使用Redis缓存结果.您可以将应用程序视为具有多个SQL表的通讯簿.该应用程序执行以下任务:

40%的时间:

  • 创建新记录/更新现有记录
  • 批量更新多条记录
  • 查看现有记录

60%的时间:

  • 根据用户的标准搜索记录

这是我目前的做法:

  • 创建或更新记录时,系统会缓存记录.
  • 当用户执行搜索时,系统将缓存查询结果.

最重要的是,我有一个Redis查找表(Redis Set),它存储MySQL记录ID和Redis缓存键.这样我可以删除Redis缓存,如果MySQL记录已经更改(例如,批量更新).

如果在系统缓存搜索结果后创建新记录怎么办?如果新记录与搜索条件匹配,系统将始终返回旧缓存(不包括新记录),直到删除缓存(在缓存中的现有记录更新之前不会发生).

搜索由用户驱动,搜索条件的组合是无数的.创建新记录时,无法评估应删除哪个缓存.

到目前为止,唯一的解决方案是在创建记录时删除MySQL表的所有缓存.然而,这不是一个好的选择,因为每天都会创建大量记录.

在这种情况下,在MySQL之上实现Redis的最佳方法是什么?

mysql database caching redis

8
推荐指数
1
解决办法
9431
查看次数

array_multisort具有自然排序

是否可以使用PHP中的自然排序按多列对多维数组进行排序?这是一个例子.假设我有一个2D数组,例如,

$array[1]['Name'] = 'John';
$array[1]['Age'] = '20';
$array[1]['Code'] = 'ABC 12';

$array[2]['Name'] = 'John';
$array[2]['Age'] = '21';
$array[2]['Code'] = 'ABC 1';

$array[3]['Name'] = 'Mary';
$array[3]['Age'] = '20';
$array[3]['Code'] = 'ABC 10';
Run Code Online (Sandbox Code Playgroud)

我想按名称(ASC),然后按年龄(DESC)和代码(ASC)对这个数组进行排序,所有都将自然地排序.基本上这将是自然排序的array_multisort.

我在网上找到了很多关于这个主题的解决方案.不幸的是,它们只支持按一列排序,而不是多列排序.

php arrays sorting natural-sort

5
推荐指数
1
解决办法
2703
查看次数

如何在 AJAX 中加载 <script type=module>?

如何通过 jQuery AJAX 加载模块脚本?我喜欢通过 AJAX 加载 PhotoSwipe,因为我的图库取决于用户的输入。

<script type="module">
import PhotoSwipeLightbox from 'photoswipe/dist/photoswipe-lightbox.esm.js';
const lightbox = new PhotoSwipeLightbox({
  gallery: '#my-gallery',
  children: 'a',
  pswpModule: () => import('photoswipe/dist/photoswipe.esm.js')
});
lightbox.init();
</script>
Run Code Online (Sandbox Code Playgroud)

我们有一个 HTML 表单。用户提交表单后,服务器将返回内容,jQuery 将响应插入到 DOM 中。响应存储并显示在 div 内。

$('#form').ajaxForm({ 
        target: '#feedbackSection',
        url: 'server.php',
        type: 'post',
        beforeSubmit: beforeSubmit,
        success: showResponse
    });
Run Code Online (Sandbox Code Playgroud)

通常,我会在响应代码中包含一些 JavaScript 代码。我注意到 type=module 未加载:

<script type='module'>
    //This code is not loaded.
</script>

<script type="text/javascript">
$(document).ready(function(){
  //This code is loaded.

});
</script>
Run Code Online (Sandbox Code Playgroud)

有什么办法可以解决这个问题吗?谢谢。

javascript ajax module

5
推荐指数
1
解决办法
909
查看次数

标签 统计

ajax ×1

arrays ×1

caching ×1

database ×1

javascript ×1

module ×1

mysql ×1

natural-sort ×1

php ×1

redis ×1

sorting ×1