国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison base de données tutoriel mysql redis學(xué)習(xí)筆記7(key操作)

redis學(xué)習(xí)筆記7(key操作)

Jun 07, 2016 pm 03:21 PM
key redis étude fonctionner notes

redis學(xué)習(xí)筆記7(key操作) 一、概述: 在該系列的前幾篇博客中,主要講述的是與Redis數(shù)據(jù)類型相關(guān)的命令,如String、List、Set、Hashes和Sorted-Set。這些命令都具有一個(gè)共同點(diǎn),即所有的操作都是針對與Key關(guān)聯(lián)的Value的。而該篇博客將主要講述與Key相關(guān)的R

redis學(xué)習(xí)筆記7(key操作)

?

一、概述:

?

? ? ? 在該系列的前幾篇博客中,主要講述的是與Redis數(shù)據(jù)類型相關(guān)的命令,如String、List、Set、Hashes和Sorted-Set。這些命令都具有一個(gè)共同點(diǎn),即所有的操作都是針對與Key關(guān)聯(lián)的Value的。而該篇博客將主要講述與Key相關(guān)的Redis命令。學(xué)習(xí)這些命令對于學(xué)習(xí)Redis是非常重要的基礎(chǔ),也是能夠充分挖掘Redis潛力的利器。

? ? ? 在該篇博客中,我們將一如既往的給出所有相關(guān)命令的明細(xì)列表和典型示例,以便于我們現(xiàn)在的學(xué)習(xí)和今后的查閱。

?

二、相關(guān)命令列表:

命令原型 時(shí)間復(fù)雜度 命令描述 返回值

KEYS pattern O(N) 時(shí)間復(fù)雜度中的N表示數(shù)據(jù)庫中Key的數(shù)量。獲取所有匹配pattern參數(shù)的Keys。需要說明的是,在我們的正常操作中應(yīng)該盡量避免對該命令的調(diào)用,因?yàn)閷τ诖笮蛿?shù)據(jù)庫而言,該命令是非常耗時(shí)的,對Redis服務(wù)器的性能打擊也是比較大的。pattern支持glob-style的通配符格式,如*表示任意一個(gè)或多個(gè)字符,?表示任意字符,[abc]表示方括號中任意一個(gè)字母。 匹配模式的鍵列表。

DEL key [key ...] O(N) 時(shí)間復(fù)雜度中的N表示刪除的Key數(shù)量。從數(shù)據(jù)庫刪除中參數(shù)中指定的keys,如果指定鍵不存在,則直接忽略。還需要另行指出的是,如果指定的Key關(guān)聯(lián)的數(shù)據(jù)類型不是String類型,而是List、Set、Hashes和Sorted Set等容器類型,該命令刪除每個(gè)鍵的時(shí)間復(fù)雜度為O(M),其中M表示容器中元素的數(shù)量。而對于String類型的Key,其時(shí)間復(fù)雜度為O(1)。 實(shí)際被刪除的Key數(shù)量。

EXISTS key O(1) 判斷指定鍵是否存在。 1表示存在,0表示不存在。

MOVE key db O(1) 將當(dāng)前數(shù)據(jù)庫中指定的鍵Key移動到參數(shù)中指定的數(shù)據(jù)庫中。如果該Key在目標(biāo)數(shù)據(jù)庫中已經(jīng)存在,或者在當(dāng)前數(shù)據(jù)庫中并不存在,該命令將不做任何操作并返回0。 ? 移動成功返回1,否則0。

RENAME key newkey O(1) 為指定指定的鍵重新命名,如果參數(shù)中的兩個(gè)Keys的命令相同,或者是源Key不存在,該命令都會返回相關(guān)的錯誤信息。如果newKey已經(jīng)存在,則直接覆蓋。

RENAMENX key newkey O(1) 如果新值不存在,則將參數(shù)中的原值修改為新值。其它條件和RENAME一致。 1表示修改成功,否則0。

PERSIST key O(1) 如果Key存在過期時(shí)間,該命令會將其過期時(shí)間消除,使該Key不再有超時(shí),而是可以持久化存儲。 1表示Key的過期時(shí)間被移出,0表示該Key不存在或沒有過期時(shí)間。

EXPIRE key seconds O(1) 該命令為參數(shù)中指定的Key設(shè)定超時(shí)的秒數(shù),在超過該時(shí)間后,Key被自動的刪除。如果該Key在超時(shí)之前被修改,與該鍵關(guān)聯(lián)的超時(shí)將被移除。 1表示超時(shí)被設(shè)置,0則表示Key不存在,或不能被設(shè)置。

EXPIREAT key timestamp O(1) 該命令的邏輯功能和EXPIRE完全相同,唯一的差別是該命令指定的超時(shí)時(shí)間是絕對時(shí)間,而不是相對時(shí)間。該時(shí)間參數(shù)是Unix timestamp格式的,即從1970年1月1日開始所流經(jīng)的秒數(shù)。 1表示超時(shí)被設(shè)置,0則表示Key不存在,或不能被設(shè)置。?

TTL key O(1) 獲取該鍵所剩的超時(shí)描述。 返回所剩描述,如果該鍵不存在或沒有超時(shí)設(shè)置,則返回-1。

RANDOMKEY O(1) ? 從當(dāng)前打開的數(shù)據(jù)庫中隨機(jī)的返回一個(gè)Key。 返回的隨機(jī)鍵,如果該數(shù)據(jù)庫是空的則返回nil。

TYPE key O(1) 獲取與參數(shù)中指定鍵關(guān)聯(lián)值的類型,該命令將以字符串的格式返回。 返回的字符串為string、list、set、hash和zset,如果key不存在返回none。

SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination] O(N+M*log(M)) 這個(gè)命令相對來說是比較復(fù)雜的,因此我們這里只是給出最基本的用法,有興趣的網(wǎng)友可以去參考redis的官方文檔。 返回排序后的原始列表。

?

三、命令示例:

?

? ?1. KEYS/RENAME/DEL/EXISTS/MOVE/RENAMENX:

? ? #在Shell命令行下啟動Redis客戶端工具。

? ? /> redis-cli

? ? #清空當(dāng)前選擇的數(shù)據(jù)庫,以便于對后面示例的理解。

? ? redis 127.0.0.1:6379> flushdb

? ? OK

? ? #添加String類型的模擬數(shù)據(jù)。

? ? redis 127.0.0.1:6379> set mykey 2

? ? OK

? ? redis 127.0.0.1:6379> set mykey2 "hello"

? ? OK

? ? #添加Set類型的模擬數(shù)據(jù)。

? ? redis 127.0.0.1:6379> sadd mysetkey 1 2 3

? ? (integer) 3

? ? #添加Hash類型的模擬數(shù)據(jù)。

? ? redis 127.0.0.1:6379> hset mmtest username "stephen"

? ? (integer) 1

? ? #根據(jù)參數(shù)中的模式,獲取當(dāng)前數(shù)據(jù)庫中符合該模式的所有key,從輸出可以看出,該命令在執(zhí)行時(shí)并不區(qū)分與Key關(guān)聯(lián)的Value類型。

? ? redis 127.0.0.1:6379> keys my*

? ? 1) "mysetkey"

? ? 2) "mykey"

? ? 3) "mykey2"

? ? #刪除了兩個(gè)Keys。

? ? redis 127.0.0.1:6379> del mykey mykey2

? ? (integer) 2

? ? #查看一下剛剛刪除的Key是否還存在,從返回結(jié)果看,mykey確實(shí)已經(jīng)刪除了。

? ? redis 127.0.0.1:6379> exists mykey

? ? (integer) 0

? ? #查看一下沒有刪除的Key,以和上面的命令結(jié)果進(jìn)行比較。

? ? redis 127.0.0.1:6379> exists mysetkey

? ? (integer) 1

? ? #將當(dāng)前數(shù)據(jù)庫中的mysetkey鍵移入到ID為1的數(shù)據(jù)庫中,從結(jié)果可以看出已經(jīng)移動成功。

? ? redis 127.0.0.1:6379> move mysetkey 1

? ? (integer) 1

? ? #打開ID為1的數(shù)據(jù)庫。

? ? redis 127.0.0.1:6379> select 1

? ? OK

? ? #查看一下剛剛移動過來的Key是否存在,從返回結(jié)果看已經(jīng)存在了。

? ? redis 127.0.0.1:6379[1]> exists mysetkey

? ? (integer) 1

? ? #在重新打開ID為0的缺省數(shù)據(jù)庫。

? ? redis 127.0.0.1:6379[1]> select 0

? ? OK

? ? #查看一下剛剛移走的Key是否已經(jīng)不存在,從返回結(jié)果看已經(jīng)移走。

? ? redis 127.0.0.1:6379> exists mysetkey

? ? (integer) 0

? ? #準(zhǔn)備新的測試數(shù)據(jù)。 ? ?

? ? redis 127.0.0.1:6379> set mykey "hello"

? ? OK

? ? #將mykey改名為mykey1

? ? redis 127.0.0.1:6379> rename mykey mykey1

? ? OK

? ? #由于mykey已經(jīng)被重新命名,再次獲取將返回nil。

? ? redis 127.0.0.1:6379> get mykey

? ? (nil)

? ? #通過新的鍵名獲取。

? ? redis 127.0.0.1:6379> get mykey1

? ? "hello"

? ? #由于mykey已經(jīng)不存在了,所以返回錯誤信息。

? ? redis 127.0.0.1:6379> rename mykey mykey1

? ? (error) ERR no such key

? ? #為renamenx準(zhǔn)備測試key

? ? redis 127.0.0.1:6379> set oldkey "hello"

? ? OK

? ? redis 127.0.0.1:6379> set newkey "world"

? ? OK

? ? #由于newkey已經(jīng)存在,因此該命令未能成功執(zhí)行。

? ? redis 127.0.0.1:6379> renamenx oldkey newkey

? ? (integer) 0

? ? #查看newkey的值,發(fā)現(xiàn)它也沒有被renamenx覆蓋。

? ? redis 127.0.0.1:6379> get newkey

? ? "world"

? ? ? ??

? ?2. PERSIST/EXPIRE/EXPIREAT/TTL: ? ?

? ? #為后面的示例準(zhǔn)備的測試數(shù)據(jù)。

? ? redis 127.0.0.1:6379> set mykey "hello"

? ? OK

? ? #將該鍵的超時(shí)設(shè)置為100秒。

? ? redis 127.0.0.1:6379> expire mykey 100

? ? (integer) 1

? ? #通過ttl命令查看一下還剩下多少秒。

? ? redis 127.0.0.1:6379> ttl mykey

? ? (integer) 97

? ? #立刻執(zhí)行persist命令,該存在超時(shí)的鍵變成持久化的鍵,即將該Key的超時(shí)去掉。

? ? redis 127.0.0.1:6379> persist mykey

? ? (integer) 1

? ? #ttl的返回值告訴我們,該鍵已經(jīng)沒有超時(shí)了。

? ? redis 127.0.0.1:6379> ttl mykey

? ? (integer) -1

? ? #為后面的expire命令準(zhǔn)備數(shù)據(jù)。

? ? redis 127.0.0.1:6379> del mykey

? ? (integer) 1

? ? redis 127.0.0.1:6379> set mykey "hello"

? ? OK

? ? #設(shè)置該鍵的超時(shí)被100秒。

? ? redis 127.0.0.1:6379> expire mykey 100

? ? (integer) 1

? ? #用ttl命令看一下當(dāng)前還剩下多少秒,從結(jié)果中可以看出還剩下96秒。

? ? redis 127.0.0.1:6379> ttl mykey

? ? (integer) 96

? ? #重新更新該鍵的超時(shí)時(shí)間為20秒,從返回值可以看出該命令執(zhí)行成功。

? ? redis 127.0.0.1:6379> expire mykey 20

? ? (integer) 1

? ? #再用ttl確認(rèn)一下,從結(jié)果中可以看出果然被更新了。

? ? redis 127.0.0.1:6379> ttl mykey

? ? (integer) 17

? ? #立刻更新該鍵的值,以使其超時(shí)無效。

? ? redis 127.0.0.1:6379> set mykey "world"

? ? OK

? ? #從ttl的結(jié)果可以看出,在上一條修改該鍵的命令執(zhí)行后,該鍵的超時(shí)也無效了。

? ? redis 127.0.0.1:6379> ttl mykey

? ? (integer) -1

?

? ?3. TYPE/RANDOMKEY/SORT:

? ? #由于mm鍵在數(shù)據(jù)庫中不存在,因此該命令返回none。

? ? redis 127.0.0.1:6379> type mm

? ? none

? ? #mykey的值是字符串類型,因此返回string。

? ? redis 127.0.0.1:6379> type mykey

? ? string

? ? #準(zhǔn)備一個(gè)值是set類型的鍵。

? ? redis 127.0.0.1:6379> sadd mysetkey 1 2

? ? (integer) 2

? ? #mysetkey的鍵是set,因此返回字符串set。

? ? redis 127.0.0.1:6379> type mysetkey

? ? set

? ? #返回?cái)?shù)據(jù)庫中的任意鍵。

? ? redis 127.0.0.1:6379> randomkey

? ? "oldkey"

? ? #清空當(dāng)前打開的數(shù)據(jù)庫。

? ? redis 127.0.0.1:6379> flushdb

? ? OK

? ? #由于沒有數(shù)據(jù)了,因此返回nil。

? ? redis 127.0.0.1:6379> randomkey

? ? (nil)

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276
Les meilleurs packs d'extension de Laravel recommandés: 2024 outils essentiels Les meilleurs packs d'extension de Laravel recommandés: 2024 outils essentiels Apr 30, 2025 pm 02:18 PM

Les packages d'extension Laravel essentiels pour 2024 incluent: 1. Laraveldebugbar, utilisé pour surveiller et déboguer le code; 2. Laraveltelescope, fournissant une surveillance détaillée des applications; 3. Laravelhorizon, gérant les taches de file d'attente Redis. Ces packs d'extension peuvent améliorer l'efficacité du développement et les performances des applications.

Construction de l'environnement Laravel et configuration de base (Windows / Mac / Linux) Construction de l'environnement Laravel et configuration de base (Windows / Mac / Linux) Apr 30, 2025 pm 02:27 PM

Les étapes pour créer un environnement Laravel sur différents systèmes d'exploitation sont les suivantes: 1.Windows: Utilisez XAMPP pour installer PHP et compositeur, configurer les variables environnementales et installer Laravel. 2.MAC: Utilisez Homebrew pour installer PHP et Composer et installer Laravel. 3.Linux: utilisez Ubuntu pour mettre à jour le système, installer PHP et compositeur et installer Laravel. Les commandes et chemins spécifiques de chaque système sont différents, mais les étapes de base sont cohérentes pour assurer la construction fluide de l'environnement de développement de Laravel.

Redis: une comparaison avec les serveurs de base de données traditionnels Redis: une comparaison avec les serveurs de base de données traditionnels May 07, 2025 am 12:09 AM

Redis est supérieur aux bases de données traditionnelles dans des scénarios élevés de concurrence et de faible latence, mais ne convient pas aux requêtes complexes et au traitement des transactions. 1.redis utilise le stockage de mémoire, la lecture rapide et la vitesse d'écriture, adapté aux exigences élevées de la concurrence et de la latence faible. 2. Les bases de données traditionnelles sont basées sur le disque, prennent en charge les requêtes complexes et le traitement des transactions, et ont une cohérence et une persistance des données solides. 3. Redis convient comme complément ou substitut aux bases de données traditionnelles, mais elle doit être sélectionnée en fonction des besoins commerciaux spécifiques.

Comment limiter les ressources des utilisateurs dans Linux? Comment configurer Ulimit? Comment limiter les ressources des utilisateurs dans Linux? Comment configurer Ulimit? May 29, 2025 pm 11:09 PM

Linux System restreint les ressources utilisateur via la commande UliMIT pour éviter une utilisation excessive des ressources. 1.Ulimit est une commande shell intégrée qui peut limiter le nombre de descripteurs de fichiers (-n), la taille de la mémoire (-v), le nombre de threads (-u), etc., qui sont divisés en limite douce (valeur effective actuelle) et limite dure (limite supérieure maximale). 2. Utilisez directement la commande ulimit pour une modification temporaire, telle que Ulimit-N2048, mais elle n'est valable que pour la session en cours. 3. Pour un effet permanent, vous devez modifier /etc/security/limits.conf et les fichiers de configuration PAM, et ajouter SessionRequiredPam_limits.so. 4. Le service SystemD doit définir Lim dans le fichier unitaire

Redis est-il principalement une base de données? Redis est-il principalement une base de données? May 05, 2025 am 12:07 AM

Redis est principalement une base de données, mais c'est plus qu'une simple base de données. 1. En tant que base de données, Redis prend en charge la persistance et convient aux besoins de haute performance. 2. En cache, Redis améliore la vitesse de réponse de l'application. 3. En tant que courtier de messages, Redis prend en charge le mode de publication de publication, adapté à la communication en temps réel.

Redis: Beyond SQL - la perspective NoSQL Redis: Beyond SQL - la perspective NoSQL May 08, 2025 am 12:25 AM

Redis va au-delà des bases de données SQL en raison de ses performances élevées et de sa flexibilité. 1) Redis atteint une vitesse de lecture et d'écriture extrêmement rapide grace à un stockage de mémoire. 2) Il prend en charge une variété de structures de données, telles que les listes et les collections, adaptées au traitement des données complexes. 3) Le modèle unique simplifie le développement, mais une concurrence élevée peut devenir un goulot d'étranglement.

étapes et exemples pour créer un site Web dynamique PHP avec phpstudy étapes et exemples pour créer un site Web dynamique PHP avec phpstudy May 16, 2025 pm 07:54 PM

Les étapes pour créer un site Web PHP dynamique à l'aide de PHPStudy incluent: 1. Installez PHPStudy et démarrez le service; 2. Configurer le répertoire racine du site Web et la connexion de la base de données; 3. écrivez des scripts PHP pour générer du contenu dynamique; 4. Débogage et optimiser les performances du site Web. Grace à ces étapes, vous pouvez créer un site Web dynamique PHP entièrement fonctionnel à partir de zéro.

Redis: dévoiler son objectif et ses applications clés Redis: dévoiler son objectif et ses applications clés May 03, 2025 am 12:11 AM

Redisisanopen-source, in-memorydatastructurestoreUsedAdatabase, cache etmessagebroker, excellinginspeedandversatity.idswidely utiliséforcaching, réel-timeanalytics, session de ses fonction

See all articles