検索
ホームページデータベースRedisRedis がキャッシュ機能を実装してアプリケーションのパフォーマンスを向上させる方法
Redis がキャッシュ機能を実装してアプリケーションのパフォーマンスを向上させる方法Nov 07, 2023 pm 12:59 PM
redisキャッシュアプリケーションのパフォーマンス

Redis がキャッシュ機能を実装してアプリケーションのパフォーマンスを向上させる方法

Redis は、オープンソースのキャッシュ、キー/値ストア、およびメッセージング システムです。 2009 年に Salvatore Sanfilippo によって発明され、徐々に Web アプリケーションで最も一般的に使用されるキャッシュおよびデータ ストレージ ソリューションの 1 つになりました。

Redis は、文字列、ハッシュ、リスト、セット、順序付きセットなど、さまざまなデータ構造を提供します。これらのデータ構造には、高速読み取り/書き込みパフォーマンス、永続ストレージ、クラスター サポートなどの優れた機能があり、Web アプリケーションでの応答データのキャッシュ、セッション データの保存、メッセージのキューなどに使用できます。

以下では、Redis を使用してキャッシュ機能を実装してアプリケーションのパフォーマンスを向上させる方法を紹介し、具体的なコード例を示します。

  1. Redis 接続の初期化

Redis を使用する前に、対応するドライバー ライブラリとの接続を確立する必要があります。 Python を例として、redis-py ライブラリを使用できます。

import redis

r = redis.Redis(host='localhost', port=6379, db=0)

この例では、デフォルトのポートと 0 番目のデータベースを使用して、ローカルで実行されている Redis サーバーに接続します。

  1. キャッシュ データの設定

データをアプリケーションのキャッシュに書き込む前に、まずデータをシリアル化する必要があります。 Redis は、文字列、JSON、pickle などを含む複数のシリアル化メソッドをサポートしています。

次は、文字列「Hello, Redis Cache」をキャッシュに書き込む例です:

import json

data = 'Hello, Redis Cache'
key = 'mykey'

serialized_data = json.dumps(data)

r.set(key, serialized_data)

このコードは、文字列データを JSON 形式に変換し、Redis SET コマンドを使用して書き込みます。キャッシュ内に。

  1. キャッシュされたデータの取得

Redis からキャッシュされたデータを取得することも一般的な操作です。 GET コマンドを使用すると、キャッシュ内のデータを読み取り、データを逆シリアル化できます。

以下は、GET コマンドを使用してキャッシュされたデータを取得する例です:

import json

key = 'mykey'

serialized_data = r.get(key)

data = json.loads(serialized_data)

このコードは、Redis GET コマンドを使用して、キー「mykey」を持つキャッシュされたデータを読み取ります。次に、データを Python 辞書または他のデータ型に逆シリアル化します。

  1. キャッシュの有効期限を設定する

キャッシュされたデータを設定するとき、データのライフサイクルも設定できます。 Redis EXPIRE コマンドを使用して、キャッシュの有効期限を設定できます。キャッシュされたデータの有効期限が切れると、Redis は自動的にデータを削除します。

次は、データのライフ サイクルを 60 秒に設定するサンプル コードです:

import json

data = {'name': 'Tom', 'age': 30}
key = 'user_001'
serialized_data = json.dumps(data)

r.set(key, serialized_data)
r.expire(key, 60)

このコードは、「user_001」という名前のキャッシュされたデータを設定し、ライフ サイクルを 60 秒に設定します。 。その後、Redis はこのキャッシュされたデータを自動的に削除します。

  1. キャッシュを使用してアプリケーションのパフォーマンスを向上させる

データをキャッシュすると、特にアプリケーションが同じデータに頻繁にアクセスする必要がある場合に、Web アプリケーションのパフォーマンスを向上させることができます。データをキャッシュに書き込むことにより、アプリケーションはデータベースに対する複数回のクエリを回避でき、ネットワークの遅延とシステム負荷が軽減されます。

次は、キャッシュを使用してパフォーマンスを向上させる例です。

import time
import json

def get_user_data(user_id):
    key = 'user_' + str(user_id)
    serialized_data = r.get(key)

    if serialized_data is not None:
        # 缓存中有数据,直接读取并返回
        data = json.loads(serialized_data)
        return data
    else:
        # 缓存中无数据,从数据库中读取并写入缓存
        data = read_from_db(user_id)
        serialize_data = json.dumps(data)
        r.set(key, serialized_data)
        r.expire(key, 60)

        return data

def read_from_db(user_id):
    # 从数据库读取用户数据
    time.sleep(2)  # 模拟真实数据库查询时间
    data = {'name': 'Tom', 'age': 30}
    return data

このコードは、ユーザー データを読み取る関数をシミュレートします。キャッシュにユーザー データがある場合、関数はキャッシュから直接読み取り、データを返します。それ以外の場合、関数はデータベースからユーザー データを読み取り、Redis キャッシュに書き込みます。

  1. 概要

上記では、Redis が Web アプリケーションのパフォーマンスを向上させるためにキャッシュ機能を実装する方法を紹介しました。データ ストレージ、永続性、クラスター サポート、複数のデータ構造などの優れた機能を提供し、開発者が効率的なアプリケーションを簡単に構築できるようにします。

Redis をキャッシュに使用する場合は、データのシリアル化、キャッシュの有効期限、キャッシュの故障、キャッシュなだれなどの問題に注意する必要があります。ただし、これらの問題は、いくつかの技術的手段とベスト プラクティスを使用すれば簡単に解決できます。

これらのヒントとベスト プラクティスは、Redis キャッシュを使用して Web アプリケーションのパフォーマンスを向上させる場合に役立つと考えています。

以上がRedis がキャッシュ機能を実装してアプリケーションのパフォーマンスを向上させる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
如何修复 Outlook 中缺少的 Microsoft Teams 插件如何修复 Outlook 中缺少的 Microsoft Teams 插件May 11, 2023 am 11:01 AM

团队在Outlook中有一个非常有用的加载项,当您在使用Outlook2013或更高版本的应用程序时安装以前的应用程序时,它会自动安装。安装这两个应用程序后,只需打开Outlook,您就可以找到预装的加载项。但是,一些用户报告了在Outlook中找不到Team插件的异常情况。修复1–重新注册DLL文件有时需要重新注册特定的Teams加载项dll文件。第1步-找到MICROSOFT.TEAMS.ADDINLOADER.DLL文件1.首先,您必须确保

如何在 Windows 10 中清除地址解析协议 (ARP) 缓存如何在 Windows 10 中清除地址解析协议 (ARP) 缓存Apr 13, 2023 pm 07:43 PM

地址解析协议 (ARP) 用于将 MAC 地址映射到 IP 地址。网络上的所有主机都有自己的 IP 地址,但网络接口卡 (NIC) 将有 MAC 地址而不是 IP 地址。ARP 是用于将 IP 地址与 MAC 地址相关联的协议。所有这些条目都被收集并放置在 ARP 缓存中。映射的地址存储在缓存中,它们通常不会造成任何损害。但是,如果条目不正确或 ARP 缓存损坏,则会出现连接问题、加载问题或错误。因此,您需要清除 ARP 缓存并修复错误。在本文中,我们将研究如何清除 ARP 缓存的不同方法。方法

如何在Mac上清除图标缓存?如何在Mac上清除图标缓存?Apr 22, 2023 pm 07:49 PM

如何在Mac上清除和重置图标缓存警告:因为您将使用终端和rm命令,所以在继续执行任何操作之前,最好使用TimeMachine或您选择的备份方法备份您的Mac。输入错误的命令可能会导致永久性数据丢失,因此请务必使用准确的语法。如果您对命令行不满意,最好完全避免这种情况。启动终端并输入以下命令并按回车键:sudorm-rfv/Library/Caches/com.apple.iconservices.store接下来,输入以下命令并按回车键:sudofind/private/var

0x80070246 Windows更新错误:6修复方法0x80070246 Windows更新错误:6修复方法May 20, 2023 pm 06:28 PM

根据几位Windows10和Windows11用户的说法,他们在尝试安装Windows更新时遇到了错误0x80070246。此错误阻止他们升级PC并享受最新功能。值得庆幸的是,在本指南中,我们列出了一些最佳解决方案,可帮助您解决Windows0PC上80070246x11的Windows更新安装错误。我们还将首先讨论可能引发问题的原因。让我们直接进入它。为什么我会收到Windows更新安装错误0x80070246?您可能有多种原因导致您在PC上收到Windows11安装错误0x80070246。

如何修复 Microsoft Teams 错误代码 caa70004 问题如何修复 Microsoft Teams 错误代码 caa70004 问题Apr 14, 2023 am 09:25 AM

尝试在其设备上启动 Microsoft Teams 桌面客户端的用户在空白应用页面中报告了错误代码 caa70004。错误代码说:“我们很抱歉——我们遇到了问题。”以及重新启动 Microsoft Teams 以解决问题的选项。您可以尝试实施许多解决方案并再次加入会议。解决方法——1. 您应该尝试的第一件事是重新启动 Teams 应用程序。只需在错误页面上点击“重新启动”即可。

如何在 Windows 11上显示所有缓存的 DNS 条目如何在 Windows 11上显示所有缓存的 DNS 条目May 21, 2023 pm 01:01 PM

Windows操作系统使用缓存来存储DNS条目。DNS(域名系统)是用于通信的互联网核心技术。特别是用于查找域名的IP地址。当用户在浏览器中键入域名时,加载站点时执行的首要任务之一是查找其IP地址。该过程需要访问DNS服务器。通常,互联网服务提供商的DNS服务器会自动使用,但管理员可能会切换到其他DNS服务器,因为这些服务器可能更快或提供更好的隐私。如果DNS用于阻止对某些站点的访问,则切换DNS提供商也可能有助于绕过Internet审查。Windows使用DNS解

如何在 Windows 11 上清理缓存:详细的带图片教程如何在 Windows 11 上清理缓存:详细的带图片教程Apr 24, 2023 pm 09:37 PM

什么是缓存?缓存(发音为ka·shay)是一种专门的高速硬件或软件组件,用于存储经常请求的数据和指令,这些数据和指令又可用于更快地加载网站、应用程序、服务和系统的其他部分。缓存使最常访问的数据随时可用。缓存文件与缓存内存不同。缓存文件是指经常需要的文件,如PNG、图标、徽标、着色器等,多个程序可能需要这些文件。这些文件存储在您的物理驱动器空间中,通常是隐藏的。另一方面,高速缓存内存是一种比主内存和/或RAM更快的内存类型。它极大地减少了数据访问时间,因为与RAM相比,它更靠近CPU并且速度

vue的缓存有几种实现方式vue的缓存有几种实现方式Dec 22, 2021 pm 06:00 PM

vue缓存数据有4种方式:1、利用localStorage,语法“localStorage.setItem(key,value)”;2、利用sessionStorage,语法“sessionStorage.setItem(key,value)”;3、安装并引用storage.js插件,利用该插件进行缓存;4、利用vuex,它是一个专为Vue.js应用程序开发的状态管理模式。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール