Table of Contents
Redis introduction
#3. Запускаем сервис Redis
Обнаружено, что Redis запущен
5. Конкретные операции
3.Введение и использование типа связанного списка «Список»
Как работать со связанным список?
5.SortSet операция типа сортированного набора
#8. Режим Master-Slave
Home Backend Development PHP Tutorial Start with Redis cache from scratch

Start with Redis cache from scratch

Jun 04, 2018 am 09:48 AM
redis Obtain cache

This article mainly introduces how to start Redis cache from scratch. It has certain reference value. Now I share it with you. Friends in need can refer to it

  1. Redis introduction

Redis is an open source language using ANSI C #Write, support network, log-type, memory-based and persistent, Key-Valuedatabase, and provide multiple languagesAPI. From 2010#315,## The development of #Redis is hosted by VMware. Starting from 5 in #2013, Redis has been developed by PivotalSponsored. redis is a key-value

storage system. Similar to Memcached, it supports storing relatively more value types, including string( String)list(Linked list)set(SET)zset(sorted set --ordered set) and hash (hash type). These data types support push/pop, add/remove and fetch Intersection, union and difference and richer operations, and these operations are all atomic. On this basis, redis supports various sorting methods. Like memcached, in order to ensure efficiency, data is cached in memory. The difference is that redis will periodically write updated data to disk or write modification operations to additional record files, and on this basis, master-slave(Master-slave) Synchronization.

Redis — это высокопроизводительная база данных ключ-значение. Появление redis во многом компенсировало memcached этого типаkey/valueНедостаточное хранилище может сыграть очень хорошую дополнительную роль для реляционной базы данных в некоторых ситуациях. Он предоставляет Java, C/C , C#, PHP,JavaScript,Perl,Object-C , Python, Ruby, Erlang и другие клиенты, используйте очень удобный. [1]

##Redis поддерживает синхронизацию master-slave. Данные могут быть синхронизированы с главного сервера на любое количество подчиненных серверов, а подчиненный сервер может быть главным сервером, связанным с другими подчиненными серверами. Это позволяет Redis выполнять одноуровневую репликацию дерева. Сохранение может записывать данные намеренно или непреднамеренно. Поскольку механизм подписки на публикацию / полностью реализован, когда подчиненная база данных синхронизирует дерево где угодно, она может подписаться на канал и получить полную запись публикации сообщения главного сервера. Синхронизация полезна для масштабируемости и избыточности данных операций чтения. Адрес официального сайта

redis очень легко запомнить: это redis.io. (Я специально проверил и обнаружил, что суффикс доменного имени io принадлежит национальному доменному имени, которое британская территория в Индийском океане, то есть Британская территория в Индийском океане)

В настоящее время Vmware финансирует разработку и поддержание проект redis.

2. Установка Redis

Извлечение установочного файла

#После распаковки

Выполните команду make для компиляции

Компилируйте OK,

Введите каталог src


Работа терминала Redis-cli

Файл Redis-сервера для запуска службы Redis

Тестовый файл давления Redis-benchmark

Redis-check-xx Сценарий резервного файла проверки автомобиля

Создайте рабочий каталог Redis и скопируйте два запущенных файла в прошлое

Копируем файл конфигурации в прошлое

#3. Запускаем сервис Redis

Признаки успешного фронтенда запуск службы redis

./redis-server

В настоящее время возникла проблема. Текущую службу невозможно отключить. После выключения она исчезнет, ​​поэтому ее необходимо изменить.

Остановить службу Ctrl z

Сначала остановите службу redis

Используйте фон для запуска службы redis

vim redis.conf

Измените значение на «Да», чтобы сохранить и установить Запустить Redis в фоновом режиме

Начать снова

Я обнаружил, что он все еще запускается в интерфейс

#Включите его при запуске. Запустите файл конфигурации вместе

Проверьте процесс redis

Обнаружено, что Redis запущен

4. Простое использование

Три переменные установлены, и эти три переменные хранятся в памяти.

Как читать?

Получать!

5. Конкретные операции

1. Операция с ключами

В redis нельзя использовать «\n» и пробелы как дополнительно к содержимому компонента имени, другой контент может использоваться как часть имени ключа. Длина имени не требуется

Другими словами, это имя переменнойКодФункция##Вернуть количество ключей в текущая база данныхСрок действия ключа в секундахУкажите срок действия ключа Ttl key#Возвращает время действия ключа в секундах##Select db- indexПереместить ключ db-indexFlushdbFlushall

##Существует ключ

Существует ли он

Del key1 key2….

Удалить указанный ключ

Тип ключа

#Возвращает тип значения данного ключа

Шаблон ключа

Вернуть все ключи, соответствующие указанному шаблону

##Переименовать старый ключ newkey

Изменить имя

#Dbsize

Выбрать базу данных

Переместить ключ из текущей базы данных в указанную базу данных

#Удалить все ключи в текущей базе данных

Удалить все ключи во всех базах данных


Вот пример использования

2. Операция строкового типа

Строка — самый простой тип redis

Строка Redis может содержать любые данные, включая изображения jpg или сериализованные объекты

Максимальный предел одного значения — 1 Гбайт

##Установить значение ключаMset key1 value1…keyN valueNMget key1 key2 … keyNТо же, что и выше – операцияТо же, что и incr плюс указанное значение#То же, что и decr минус указанное значениеДобавить значение к строке указанного ключа##Substr key start endВозвращает строковое значение перехваченного ключа
Code

Функция

##Установить значение, соответствующее ключ к значению строкового типа

##Задайте значения нескольких ключей в Once

##Получение значений нескольких ключей одновременно

Incr key
Операция над значением ключа

## Ключ Decr

##Incrby целое число ключа

Decrby ключевое целое число

Добавить значение ключа

##

3.Введение и использование типа связанного списка «Список»

Тип списка на самом деле представляет собой двусвязный список

If вы хотите запросить 10 последних последних пользователей,

необходимо проверять по одному, что требует слишком много ресурсов

Пример списка связанных списков:

Сквозной список В связанном списке хранится информация о 5 последних пользователях, вошедших в систему

Новые пользователи приходят, а старые удаляются

Как работать со связанным список?

#Добавьте строковый элемент в начало списка, соответствующий ключуУдаляет элемент из конца списка и возвращает удаленный элемент. Если значение ключа не соответствует не существует, возвращается 0. Если соответствующий тип ключа отсутствует в списке, возвращается ошибка #Rpush key string в конце ##Lpop key##Ltrim key start end

#Код

#Функция

Lpush key string

Rpop key

Ключ Lien возвращает длину списка, соответствующего ключу

То же, что и выше, добавьте

Удаляет элемент из головы списка и возвращает удаленный элемент

Перехватить список и сохранить элементы в указанном диапазоне


4.Установить тип коллекции

Redis 'set представляет собой неупорядоченную коллекцию строкового типа.

Элементы набора могут содержать до (2 в 32-й степени -1) элементов

Каждый элемент в каждом наборе не может повторяться

Код

Функция

Добавить ключевой элемент

#Добавить строковый элемент в коллекцию set, соответствующую ключу, и вернуть успех 1

Srem keymember

Удаляет заданный элемент из соответствующего набора ключей и успешно возвращает 1

Переместить элемент p1 p2

Удалить элемент из соответствующего набора p1 и добавить его в соответствующий набор p2

Scard key

#Возвращает количество элементов в наборе

Ключевой элемент Sismember

Определите, существует ли элемент в наборе

Синтер шпонка1 шпонка2.. . .

Возвращает пересечение всех заданных ключей

Sunion key1 key2

Возвращает объединение всех заданных ключей

Sdiff key1 key2.

Возвращает набор различий всех заданных ключей

Smembers key

Возвращает все элементы набора, соответствующие ключу, результат неупорядочен
###


Есть ключ с пятью элементами

Затем добавьте ссылку

5.SortSet операция типа сортированного набора

Как и набор, отсортированный набор также представляет собой набор строковых элементов

Разница в том, что каждому элементу присвоен вес

Элементы в наборе можно получить по порядку по значению веса

Случай:

Используйте набор сортировки, чтобы получить 5 самых популярных постов для обучения

Каждый элемент в отсортированном наборе представляет собой комбинацию значения и веса

Удалить указанный элемент, 1 успешно, 0 не существует#Zincrby key incrmember ##Zrank keymemberZrange key start endZrevrange key start end


6. Сохранение снимка

#Для сохранения одного изменения ключа (снимка)

Для сохранения одного изменения ключа требуется 300 секунд. десять изменений ключей, которые необходимо сохранить (снимок) Сохранить

Десять тысяч изменений ключей в минуту (снимок) Сохранить

Преимущества такого контроля:

Частота изменения данных очень высока, и частота резервного копирования также высока,

Частота изменения данных низкая, и частота резервного копирования также низкая.

Имя сохраняемого снимка



##Вручную инициировать сохранение моментальных снимков

Если для этого компьютера:

7.Постоянство AOF

Essence : Резервное копирование каждой команды «записи» (добавление, удаление, изменение), выполняемой пользователем, в файл и выполнение конкретной команды «записи» при восстановлении

Включение сохранения AOF очистит внутреннюю часть данных redis.

Включить сохранение AOF

Файл конфигурации изменен и перезапустите службу

Просмотрите процесс redis

: Ps – A | grep redis

##-9Принудительно завершить процесс

Запустить новый процесс

Aof добавляет частоту постоянного резервного копирования

Всегда принудительно запись на диск сразу после получения команды записи.Это очень медленно, но может поддерживать полную устойчивость.

Everysec принудительно записывает на диск один раз в секунду.Он проделал хорошую работу с точки зрения производительности и устойчивости. Компромисс, рекомендуется

Нет, максимальная производительность полностью зависит от ОС, но постоянство не гарантируется

#8. Режим Master-Slave

Чтобы снизить нагрузку каждого сервера Redis можно установить Несколько, и в режиме master-slave

Один сервер загрузка «пишет»

Другой сервер загружается «чтение»

Мастер-сервер будет автоматическая синхронизация с подчиненным сервером


Изменить IP-адрес и номер порта

Код

Функция

#Zadd ключевой элемент оценки

Добавьте элементы в коллекцию и обновите соответствующую оценку, если элемент существует в коллекции

##Zrem keymember

Увеличьте значение оценки соответствующего элемента в соответствии с диапазоном увеличения и верните значение оценки

Возвращает ранг (индекс) указанного элемента в наборе.Элементы в наборе сортируются от меньшего к большему по баллу

##Аналогично операции Irange, элементы в указанном диапазоне указаны из коллекции, и возвращаются упорядоченные результаты

То же, что и выше, возврат осуществляется в обратном порядке

##Zcard key

Возвращает количество элементов в коллекции

Zscore key elemet

Возвращает оценку соответствующий данному элементу

#Zremrangebyrank key min max

#Удалить элементы в набор, которые ранжированы в заданном интервале баллов

The above is the detailed content of Start with Redis cache from scratch. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1664
14
PHP Tutorial
1266
29
C# Tutorial
1239
24
How to build the redis cluster mode How to build the redis cluster mode Apr 10, 2025 pm 10:15 PM

Redis cluster mode deploys Redis instances to multiple servers through sharding, improving scalability and availability. The construction steps are as follows: Create odd Redis instances with different ports; Create 3 sentinel instances, monitor Redis instances and failover; configure sentinel configuration files, add monitoring Redis instance information and failover settings; configure Redis instance configuration files, enable cluster mode and specify the cluster information file path; create nodes.conf file, containing information of each Redis instance; start the cluster, execute the create command to create a cluster and specify the number of replicas; log in to the cluster to execute the CLUSTER INFO command to verify the cluster status; make

How to clear redis data How to clear redis data Apr 10, 2025 pm 10:06 PM

How to clear Redis data: Use the FLUSHALL command to clear all key values. Use the FLUSHDB command to clear the key value of the currently selected database. Use SELECT to switch databases, and then use FLUSHDB to clear multiple databases. Use the DEL command to delete a specific key. Use the redis-cli tool to clear the data.

How to read redis queue How to read redis queue Apr 10, 2025 pm 10:12 PM

To read a queue from Redis, you need to get the queue name, read the elements using the LPOP command, and process the empty queue. The specific steps are as follows: Get the queue name: name it with the prefix of "queue:" such as "queue:my-queue". Use the LPOP command: Eject the element from the head of the queue and return its value, such as LPOP queue:my-queue. Processing empty queues: If the queue is empty, LPOP returns nil, and you can check whether the queue exists before reading the element.

How to configure Lua script execution time in centos redis How to configure Lua script execution time in centos redis Apr 14, 2025 pm 02:12 PM

On CentOS systems, you can limit the execution time of Lua scripts by modifying Redis configuration files or using Redis commands to prevent malicious scripts from consuming too much resources. Method 1: Modify the Redis configuration file and locate the Redis configuration file: The Redis configuration file is usually located in /etc/redis/redis.conf. Edit configuration file: Open the configuration file using a text editor (such as vi or nano): sudovi/etc/redis/redis.conf Set the Lua script execution time limit: Add or modify the following lines in the configuration file to set the maximum execution time of the Lua script (unit: milliseconds)

How to use the redis command line How to use the redis command line Apr 10, 2025 pm 10:18 PM

Use the Redis command line tool (redis-cli) to manage and operate Redis through the following steps: Connect to the server, specify the address and port. Send commands to the server using the command name and parameters. Use the HELP command to view help information for a specific command. Use the QUIT command to exit the command line tool.

How to implement redis counter How to implement redis counter Apr 10, 2025 pm 10:21 PM

Redis counter is a mechanism that uses Redis key-value pair storage to implement counting operations, including the following steps: creating counter keys, increasing counts, decreasing counts, resetting counts, and obtaining counts. The advantages of Redis counters include fast speed, high concurrency, durability and simplicity and ease of use. It can be used in scenarios such as user access counting, real-time metric tracking, game scores and rankings, and order processing counting.

How to set the redis expiration policy How to set the redis expiration policy Apr 10, 2025 pm 10:03 PM

There are two types of Redis data expiration strategies: periodic deletion: periodic scan to delete the expired key, which can be set through expired-time-cap-remove-count and expired-time-cap-remove-delay parameters. Lazy Deletion: Check for deletion expired keys only when keys are read or written. They can be set through lazyfree-lazy-eviction, lazyfree-lazy-expire, lazyfree-lazy-user-del parameters.

How to optimize the performance of debian readdir How to optimize the performance of debian readdir Apr 13, 2025 am 08:48 AM

In Debian systems, readdir system calls are used to read directory contents. If its performance is not good, try the following optimization strategy: Simplify the number of directory files: Split large directories into multiple small directories as much as possible, reducing the number of items processed per readdir call. Enable directory content caching: build a cache mechanism, update the cache regularly or when directory content changes, and reduce frequent calls to readdir. Memory caches (such as Memcached or Redis) or local caches (such as files or databases) can be considered. Adopt efficient data structure: If you implement directory traversal by yourself, select more efficient data structures (such as hash tables instead of linear search) to store and access directory information

See all articles