Author: admin

redis.conf 7.0 配置和原理全解,生产王者必备

5.5 redis.conf 配置详解

我是 Redis, 当程序员用指令 ./redis-server /path/to/redis.conf 把我启动的时候,第一个参数必须是 redis.conf 文件的路径。

这个文件很重要,就好像是你们的 DNA,它能控制我的运行情况,不同的配置会有不同的特性和人生,它掌握我的人生命运,控制着我如何完成高可用、高性能。合理的配置能让我更快、更省内存,并发挥我最大的优势让我更安全运行。

以下这些配置大家必知必会,需要大家掌握每个配置背后的技术原理,学会融合贯通并在生产中正确配置,解决问题。避免出现技术悬浮,原理说的叭叭叭,配置像个大傻瓜。…

    

跨站点请求伪造预防备忘单

介绍

跨站点请求伪造 (CSRF) 是一种攻击,当恶意网站、电子邮件、博客、即时消息或程序导致用户的 Web 浏览器在用户经过身份验证时在受信任的站点上执行不需要的操作时,就会发生这种攻击。CSRF 攻击之所以有效,是因为浏览器请求自动包含所有 cookie(包括会话 cookie)。因此,如果用户通过了站点的身份验证,站点将无法区分合法的授权请求和伪造的经过身份验证的请求。当使用正确的授权时,这种攻击就会被阻止,这意味着需要一个挑战-响应机制来验证请求者的身份和权限。

成功的 CSRF 攻击的影响仅限于易受攻击的应用程序暴露的功能和用户的权限。例如,这种攻击可能会导致资金转移、更改密码或使用用户的凭据进行购买。实际上,攻击者使用 CSRF 攻击使目标系统在受害者不知情的情况下通过受害者的浏览器执行功能,至少在未经授权的交易提交之前是这样。

    

Chrome 将引入无边界模式

在发布了 Chrome 114 稳定版之后,Google 目前已将开发重心转向了下一个版本 —— Chrome 115。Chrome 115 中的一些新功能也逐渐被揭晓,其中一个有趣的开发者实验功能是为独立的 Web 应用引入了无边界模式(borderless mode)。

目前,Chrome 浏览器在默认情况下会显示网站内容和众多界面元素,其中包括地址栏、工具栏图标,窗口控制按钮以及标题栏等。

当为已安装的桌面 Web 应用程序启用无边界模式之后,Web 应用的整个窗口会扩展到覆盖整个浏览器 —— 包括浏览器的标题栏区域和窗口控制按钮(关闭、最大化、最小化)。Web 应用程序开发人员负责整个窗口的绘制和输入处理。

Google 给出了这个模式的几个使用场景:

  • 希望完全自定义标题栏的应用程序仍然具有跟以前一样的功能,但可以定制自己的样式与风格;
  • 想完全删除标题栏并不提供任何控制的应用程序;
  • 可以避免出现一些 Web 应用原生就有标题栏,然后出现标题栏叠标题栏的情况出现;

借助这个模式,Chrome 可以让 Web 应用的显示空间最大化;其次,开发者还可以自定义标题栏区域,以便这些 Web 应用无论是看起来还是使用起来都更像是原生的桌面应用程序。

在官方给出的示例中,无边界模式下的 Web 应用看起来可以是下面这样的,但外观样式最终将完全取决于开发者采用的实现方式。

除了无边界模式,Chrome 115

介绍弹出框 popover API

弹出窗口在网络上随处可见。您可以在菜单、切换提示和对话框中看到它们,它们可能表现为帐户设置、披露小部件和产品卡预览。尽管这些组件非常流行,但在浏览器中构建它们仍然非常麻烦。您需要添加脚本来管理焦点、打开和关闭状态、组件的可访问挂钩、用于进入和退出体验的键盘绑定,甚至在您开始构建弹出窗口的有用、独特的核心功能之前就已经完成了这一切。

使用 GitHub Actions 使您的 GitHub 个人资料动态化

人们首先在网上哪里发现你?也许人们在搜索您时首先发现的是您的社交媒体形象,或者可能是您为自己创建的作品集网站。但是,如果您使用 GitHub 共享代码并参与开源项目,那么您的 GitHub 个人资料可能是人们了解更多信息的第一个地方。

您希望您的 GitHub 个人资料显示您的哪些信息?您想如何以简洁易懂的方式向访问者表达对您来说重要的事情以及您是谁?无论他们是开源项目的潜在雇主还是潜在合作伙伴,您都必须拥有脱颖而出的个人资料。

使用 GitHub Actions,您可以将静态 Markdown 文档转变为动态体验,随时了解有关您的最新信息。你是怎样做的?

我将向您展示如何快速且无需太多努力地完成此操作的示例。在此示例中,您将学习如何抓取网站并使用该数据动态更新您的 GitHub 配置文件。我们将使用 Ruby 展示此示例,但您也可以使用 JavaScriptTypeScriptPython 或其他语言来完成此操作。

如何使用 PHP 的 Symfony 事件调度程序

今天,我们将学习如何使用 Symfony 事件调度程序组件,它允许您在 PHP 应用程序中创建事件和侦听器。因此,应用程序的不同组件可以通过松散耦合的代码相互通信。

什么是 Symfony 事件调度程序组件?

您可能熟悉事件观察者模式,它允许您为系统生成的事件定义侦听器,以便在触发事件时执行它们。类似地,Symfony EventDispatcher 组件允许您设置一个可以在其中创建自定义事件和侦听器的系统。通过这种方式,您可以允许应用程序中的组件在系统中发生某些情况时做出反应。

事实上,事件调度程序组件提供了三个元素,您可以围绕它们构建应用程序架构:事件、侦听器和调度程序。整个系统由调度程序类编排,它在应用程序中的适当点引发事件并调用与这些事件关联的侦听器。

假设您希望允许应用程序中的其他组件在缓存被清除时做出反应。在这种情况下,您需要首先定义清除缓存事件。清除缓存后,您可以使用调度程序引发清除缓存事件,并通知所有正在侦听此事件的侦听器。这使侦听器有机会清除特定于组件的缓存。

在本文中,我们将探讨事件调度程序组件的基础知识。我们将从安装和配置开始,我们还将创建一些实际示例来演示上述所有概念。

安装和配置事件调度程序

在本节中,我们将安装事件调度程序组件。我假设您已经在系统上安装了 Composer,因为我们需要它来安装 EventDispatcher 组件。

安装 Composer 后,请继续使用以下命令安装 EventDispatcher 组件。

1
$composer需要 symfony/事件调度程序

这应该已经创建了composer.json文件,该文件应如下所示:

1
{
2
    “要求” : {