Maison > base de données > Redis > le corps du texte

Comment utiliser Redis

silencement
Libérer: 2022-06-07 14:58:30
original
2397 Les gens l'ont consulté

Cet article présentera l'utilisation de base de Redis.

Comment utiliser Redis

1. Partie de base de Redis :

Occasions applicables de Redis

1. L'opération d'obtention des dernières données N

2. Application de classement, obtention de l'opération TOP N

3. définir avec précision l'application

4. Application de compteur

5. Opération Uniq, obtenir toutes les valeurs de déduplication des données pendant une certaine période de temps

6. système anti-spam

7.Pub/Sub crée un système de messagerie en temps réel

8. Créer un système de file d'attente

Cache

Opération SET 110 000 fois par seconde, les opérations GET sont 81 000 fois par seconde et la configuration du serveur est la suivante :

Linux 2.6, Xeon X3320 2,5 Ghz.

Le Le site Web stackoverflow utilise Redis comme serveur de cache.

Les données seront également écrites sur le disque dur en même temps. Ainsi les données sont en sécurité (sauf coupure de courant soudaine, le redémarrage du service sera écrit dans le fichier dump.rdb)

1) Installation :

tar zxvf redis-2.6.9.tar.gz
cd redis-2.6.9
make
cd src && make install
Copier après la connexion

2) Déplacer l'emplacement du fichier de configuration (pour faciliter la gestion)

cd /usr/local/
mkdir -p /usr/local/redis/bin
mkdir -p /usr/local/redis/etc
mv /lamp/redis-2.6.9/redis.conf /usr/local/redis/etc
cd /lamp/redis-2.6.9/src
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin
Copier après la connexion

3) Modifier le fichier de configuration

vi /usr/local/redis/etc/redis.conf
Copier après la connexion

Remplacez no dans démoniser non par oui [oui fait référence à l'exécution en arrière-plan]

4) Démarrage/démarrage aléatoire :

cd /usr/local/redis/bin
./redis-server /usr/local/redis/etc/redis.conf#启动redis并指定配置文件。
#vi /etc/rc.local #设置随机启动。
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
Copier après la connexion

5) Vérifiez si le démarrage a réussi

ps -ef | grep redis
netstat -tunpl | grep 6379#查看端口是否占用。
Copier après la connexion

6) Entrez client/sortie

cd /usr/local/redis/bin
./redis-cli#进入
quit#退出
Copier après la connexion

7) Fermez redis

pkill redis-server#关闭
./redis-cli shutdown#关闭
Copier après la connexion

Sécurité Redis

Sécurité de Redis ??? (par les 4 méthodes suivantes)

1.

2. Ajoutez la ligne de configuration suivante au fichier de configuration redis.conf pour lier redis à une seule interface (mais elle n'accepte pas uniquement les données de cette carte réseau).

bind 127.0.0.1

3. Ajoutez un mot de passe plus long à redis (pas besoin de s'en souvenir)

4. La configuration .conf active la fonction d'authentification.

5. Proxy SSL

6. Désactivez la commande spécifiée.

Configuration Redis

daemonize Si vous devez exécuter en arrière-plan, remplacez cet élément par oui

pidfile Configurez plusieurs adresses pid par défaut dans /var/run/redis.pid

bind Bind Binding IP, après réglage, n'acceptez que les demandes de cette IP

port port d'écoute, la valeur par défaut est 6379

timeout Définir le délai d'expiration lorsque le client se connecte, en secondes

le niveau de journalisation est divisé en 4 niveaux, débogage, verbeux, notification, avertissement

logfile Configurer l'adresse du fichier journal

bases de données Définir le nombre de bases de données, la base de données par défaut utilisée est 0

enregistrer Configurer redis Fréquence de mise en miroir de la base de données

rdbcompression S'il faut compresser lors de l'exécution d'une sauvegarde miroir

Dbfilename Nom du fichier de sauvegarde miroir

Dir Database Chemin de placement des fichiers pour la sauvegarde miroir

Slaveof Définir la base de données comme base de données esclave d'autres bases de données

Vérification du mot de passe Masterauth requise pour la connexion à la base de données principale

Requirepass Définir le mot de passe requis pour la connexion

Maxclients Limiter le nombre de clients connectés en même temps

Maxmemory Définir la mémoire maximale que Redis peut utiliser

Appendonly Activer le mode ajout uniquement

Vous pouvez connaître les éléments suivants :

Appendfsync Définir la fréquence de synchronisation de appendonly Fichiers .aof

vm-enabled Activer ou non la prise en charge de la mémoire virtuelle

vm-swap-file Définir le chemin du fichier d'échange de la mémoire virtuelle

vm-max-memory Définit celui utilisé par redis Taille maximale de la mémoire physique

vm-page-size Définit la taille de page de la mémoire virtuelle

vm-pages Définit le total numéro de page du fichier d'échange

vm-max -threads Définit le nombre de threads utilisés par VM IO en même temps

Glueoutputbuf Stocke ensemble les petits caches de sortie

hash- max-zipmap-entries Définissez la valeur critique du hachage

Activerehashing Rehash

5 types de données : chaîne, hachage, liste chaînée, ensemble, ensemble ordonné.

Prend en charge : push/pop, ajout/suppression, intersection, union, différence et tri.

redis<===Sync====>mysql

En même temps, les données seront écrites sur le disque dur. Ainsi les données sont en sécurité (sauf en cas de coupure de courant soudaine, le redémarrage du service sera écrit dans le fichier dump.rdb)

select num#Sélectionnez la bibliothèque, la valeur par défaut est 0 bibliothèque, un total de 16 bibliothèques

auth liweijie#Mot de passe requis pour les utilisateurs autorisés (le mot de passe est le mot de passe configuré dans redis.conf)

flushdb#Effacer la base de données.

Type de chaîne (string) :

set name lijie#Définissez la valeur du nom de la clé sur lijie

get name#Obtenez la valeur du nom.

clés *#Interroger toutes les clés.

setnx name liweijie#Si la clé existe déjà, renvoyez 0 et ne mettez pas à jour pour éviter l'écrasement.

setex haircolor 10 red #La période de validité de la valeur clé définie est de 10 secondes.

setrange email 6 lampbre.com#Remplacez la valeur de la clé de remplacement par lampbre.com à partir du 6ème caractère

mset name1 Li Dawei name2 Li Xiaowei#Définissez les valeurs de plusieurs clés.

msetnxname1 Zhang San name3 Li Si# Déterminez si la clé existe, définissez-la si elle n'existe pas, sinon renvoyez 0 si elle n'est pas définie

mget name1 name2 name3#Obtenez les valeurs de plusieurs clés à la fois.

getset name1 Tom#Réinitialise la valeur de la clé et renvoie l'ancienne valeur de la clé.

getrange email 6 18#Interceptez la valeur de la clé email, à partir des caractères entre le 6ème et le 18ème.

incr uid#increment de 1 à chaque fois (si l'uid dans la clé n'existe pas, définissez-le et recommencez à 0, idem ci-dessous)

incrby uid 5#increment de 5 chacun time

augmente par uid -5#Diminue de 5 à chaque fois

diminue par uid #Diminue de 1 à chaque fois

diminue de uid 5#Diminue de 5 à chaque fois

appendname1 @ 126.com#Ajoutez la chaîne @126.com

strlenname1# à la valeur de name1#Renvoyer la longueur de la valeur de la clé name1.

Type de hachage (Hash) :

hset user:001 name liweijie#Hash définit la valeur de la clé de nom de l'utilisateur user:001 sur liweijie

hset user : 001 age 21#De même, ajoutez une valeur de clé d'âge de 21

hsetnx user:001 age 22#Identique à ci-dessus, mais vérifiez si la clé existe. Créez s'il n'existe pas.

utilisateur hmset :002 nom liweijie2 âge 26 sexe 1#Définissez les valeurs de plusieurs clés en même temps.

hget user:001 name#Hash obtient la valeur de la clé de nom de l'utilisateur user:001.

hget user:001 age #Identique à ci-dessus.

hmget user:001 name age sex#Obtenir les valeurs de plusieurs clés spécifiées.

hgetall user:001#Obtenir les valeurs de toutes les clés.

hincrbyuser:001 age -8#Ajoute la valeur donnée à la clé spécifiée.

hexists user:001 sex#Vérifiez si la valeur de clé spécifiée existe.

hlen user:001#Renvoie le nombre de clés/champs du hachage spécifié.

hdel user:001 sex#Supprimez le champ spécifié ou la valeur clé du hachage spécifié (user:001).

hkeys user:003#Renvoyer tous les champs ou valeurs clés dans le hachage.

Type et fonctionnement des listes (liste chaînée) (pile ou file d'attente) :

lpush mylist "world"#Insérer une chaîne depuis la tête

lpush mylist "hello "# Comme ci-dessus

lrange mylist 0 -1#Obtenir de 0 au dernier tel que [1) "bonjour" 2) "monde"]

rpush mylist "jiejie "#Insérer

linsert mylist avant "hello" "this is linsert" #Spécifiez la position d'insertion (insérer avant bonjour) à la fin.

lset mylist 0 "what"#Définit et modifie la valeur de l'indice spécifié.

lrem mylist 1 "hello"#Supprimer (1) un élément avec la valeur bonjour. (n<0 est supprimé de la queue, n=0 est entièrement supprimé)

ltrim mylist 1 2 #Conserver les éléments avec l'indice 1/2 dans le tableau.

lpop mylist# Affichez l'élément de début et revenez.

rpop mylist# Affichez l'élément tail et revenez.

rpoplpush mylist mylist2 #Pop depuis la fin de mylist et insérez-le dans l'en-tête de mylist2.

lindex mylist 0#Obtenir la valeur de l'élément avec l'indice de table 0.

llen mylist#Renvoie le nombre d'éléments du tableau (équivalent à count($arr )).

définit (set) le type et le fonctionnement (recommandation d'amis, blog, fonction de balise) :

smembers myset#Affichez toutes les valeurs des éléments de l'ensemble myset.

sadd myset "hello" #Ajouter une valeur hello à la collection mysets

srem myset "hello" #Supprimer l'élément nommé hello dans la collection myset.

spop myset #Apparaît aléatoirement et renvoie un élément dans mysets.

sdiff myset2 myset3#Renvoie la différence entre myset2 et myset3 (sous réserve de myset2).

sdiffstore myset4 myset2 myset3#Renvoie la différence entre myset2 et myset3 et stockez-la dans myset4.

sinter myset2 myset3#Renvoie l'intersection de myset2 et myset3.

sinterstore myset5 myset2 myset3#Renvoyer l'intersection de myset2 et myset3 et la stocker dans myset5.

sunion myset2 myset3#Trouver l'union (supprimer la duplication)

sunionstore myset6 myset2 myset3#Trouver l'union et la stocker dans myset6.

smove myset2 myset3 "trois" #Déplacez trois de myset2 vers myset3.

scard myset2#Renvoie le nombre d'éléments.

sismember myset2 "one"# Détermine si l'élément one est dans l'ensemble myset2 (équivalent à is_array()).

srandmember myset2# Renvoie aléatoirement un élément de l'ensemble myset2, mais ne le supprime pas (équivalent à array_rand()).

ensembles triés (ensemble ordonné) type et opération (triés par scores) :

zadd myzset 1 "un"#Ajouter l'élément un à la séquence 1

zadd myzset 2" two"# Comme ci-dessus.

zadd myzset 3 "two"#Équivalent à une valeur avec un ordre de mise à jour de 2

zrange myzset 0 -1 withscores#Affichez tous les éléments et triez-les (ordre croissant par défaut).

zrem myzset "two"#Supprimer deux

zincrby myzset 2 "two"#Ajouter 2 à la valeur de séquence de two

zrank myzset "two"#Retour au set La valeur de l'indice d'index de l'élément.

zrevrank myzset two#Inversez l'élément et renvoyez la nouvelle valeur d'indice.

zrevrange myzset 0 -1 withscores#Inverser dans l'ordre (équivalent au tri par ordre décroissant)

zrangebyscore myzset 1 10 withscores#Renvoyer les éléments dans l'ordre 1-10 (peut être paginé).

zcount myzset 1 10 #Renvoie le nombre d'éléments dans l'ordre entre 1 et 10.

zcard myzset#Renvoie le nombre de tous les éléments de l'ensemble.

zremrangebyrank myzset 1 2#Supprimer les éléments avec les indices 1 à 2 dans l'ensemble.

zremrangebyscore myzset 1 10#Supprimer les éléments de 1 à 10 dans l'ensemble.

Commandes communes Redis

Commandes liées à la clé/valeur.

keys * #Interroger toutes les

keys user*#Interroger l'

exists spécifié user:001# pour déterminer s'il existe.

del name#Supprime la clé spécifiée.

expire addr 10#设置过期时间

ttl addr#查询过期时间

select 0 #选择数据库

move age 1#将age移到1数据库。

get age #获取

persist age#移除age的过期时间。

randomkey#随机返回一个key

rename name1 name2#重命名键

type myset#返回键的类型。

ping #测试redis连接是否存活。

echo lamp#输出一个lamp

select 10#选择数据库。

quit/exit/crtl+C#退出客户端

dbsize#返回库里的键的个数。

服务器相关命令:

info#显示redis服务器的相关信息。

config get */loglevel #返回所有/指定的配置信息。

flushdb#删除当前库中的所有键/表。

flushall#删除所有数据库中的所有键/表

二、Redis高级部分:

1、Redis安全性:

1.用ACL控制器安全性。

2.给redis加上较长密码

# requirepass foobared

requirepass beijing

3.在redis.conf配置启用认证功能。

方式一:Auth beijing

方式二:./redis-cli -a beijing

4.在redis.conf配置文件增加下面这一行配置,即可把redis绑定在单个接口上(但并不是只有接受这个网卡的数据)。

bind 127.0.0.1(单台机器的时候可以配置,分布式或主从复制时最好不要配置)

5.SSL代理

6.禁用指定命令。

2、Redis主从复制:

redis只需在从服务器(slave)上配置即可:

slaveof 211.122.11.11 6379 #指定master 的ip 和端口

masterauth beijing#这是master主机的密码

Info#查看主/从服务器的状态。

3、Redis事务处理:

Redis事务很不完善。

4、Redis持久化机制:

方式一、备份数据到磁盘(快照)[ snapshotting(快照)也是默认方式]

记录操作命令[ Append-only file(缩写aof)的方式]

备份数据到磁盘(快照)[ snapshotting(快照)也是默认方式]

save 900 1 #900秒内如果超过1个key被修改,则发起快照保存
save 300 10 #300秒内容如超过10个key被修改,则发起快照保存
save 60 10000
Copier après la connexion

方式二、记录操作命令[ Append-only file(缩写aof)的方式](较安全持久化)

appendonly yes #启用aof 持久化方式 
# appendfsync always //收到写命令就立即写入磁盘,最慢,但是保证完全的持久化 
appendfsync everysec //每秒钟写入磁盘一次,在性能和持久化方面做了很好的折中
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal