hash类型 ? 是一个string类型的field和value的映射表. ? 它的添加,删除操作都是0(1)(平均). ? 适合用于存储对象. 1: hset? 描述: 设置哈希表key中域field的值设为value,如里key不存在,则先创建.存在则覆盖. 返回: 如果field是哈希表中新创建的,则返回1.已经
hash类型
? 是一个string类型的field和value的映射表.
? 它的添加,删除操作都是0(1)(平均).
? 适合用于存储对象.
1: hset?
描述: 设置哈希表key中域field的值设为value,如里key不存在,则先创建.存在则覆盖.
返回: 如果field是哈希表中新创建的,则返回1.已经存在且旧值已被新值覆盖,刚返回0.
操作如下:
redis 127.0.0.1:6379> hset uinfo_1 name tw
(integer) 1
redis 127.0.0.1:6379> hget uinfo_1 name
“tw”
redis 127.0.0.1:6379> hset uinfo_1 name tw2
(integer) 0
redis 127.0.0.1:6379> hget uinfo_1 name
“tw2″
2:hget
描述:返回哈希表KEY中给定域field的值.
返回: 如果存在返回指定field的值,不存在时返回nil.
操作如下:
redis 127.0.0.1:6379> hget user_1 name
(nil)
redis 127.0.0.1:6379> hget uinfo_1 name
“tw2″
3:hsetnx
描述:将哈希表key中的域field的值设置为value,当且仅当域field不存在。若域field已经存在,该操作无效。如果key不存在,一个新哈希表被创建并执行HSETNX命令.
返回值: 1表示新的Field被设置了新值,0表示Key或Field已经存在,该命令没有进行任何操作。
操作如下:
先查看key中所有字段及值
redis 127.0.0.1:6379> hgetall uinfo_1
1) “name”
2) “tw2″
3) “age”
4) “19″
redis 127.0.0.1:6379> hsetnx uinfo_1 sex 1
(integer) 1
redis 127.0.0.1:6379> hsetnx uinfo_1 sex 0
(integer) 0
redis 127.0.0.1:6379> hgetall uinfo_1
1) “name”
2) “tw2″
3) “age”
4) “19″
5) “sex”
6) “1″
redis 127.0.0.1:6379> hsetnx uinfo_2 name tw2
(integer) 1
redis 127.0.0.1:6379> hgetall uinfo_2
1) “name”
2) “tw2″
?
4: hmset
描述: 同时交多个field-value设置到哈希表中.此命令会覆盖哈希表中已存在的域。如果key不存在,一个空哈希表被创建并执行hmset操作。
返回值:执行成功返回ok,当key不是哈希类型时,返回一个错误.
操作如下:
redis 127.0.0.1:6379> set title_1 val_1
OK
redis 127.0.0.1:6379> hmset title_1 val_2
(error) ERR wrong number of arguments for ‘hmset’ command
redis 127.0.0.1:6379> hmset uinfo_1 name aaa age 30
OK
redis 127.0.0.1:6379> hgetall uinfo_1
1) “name”
2) “aaa”
3) “age”
4) “30″
5) “sex”
6) “1″
5:hmget
描述: 返回哈希表key中,一个或多个给定域的值。如果给定的域不存在于哈希表,那么返回一个nil值。
返回值:返回查询域的值.
操作如下:
redis 127.0.0.1:6379> hmget uinfo_1 name age
1) “aaa”
2) “30″
6:hgetall
描述:返回哈希表key中,所有的域和值。在返回值里,紧跟每个域(field name)之后是域的值
(value),所以返回值的长度是哈希表大小的两倍。
返回值:以列表形式返回哈希表中域和值.如果key不存,返回空列表.
操作:见前面hsetnx.
7:hdel
描述:删除哈希表key中的一个或多个指定域,不存在的域将被忽略。
返回值:被成功移除的域的数量,不包括被忽略的域。
操作如下:
redis 127.0.0.1:6379> hgetall uinfo_1
1) “name”
2) “aaa”
3) “age”
4) “30″
5) “sex”
6) “1″
redis 127.0.0.1:6379> hdel uinfo_1 name age
(integer) 2
redis 127.0.0.1:6379> hgetall uinfo_1
1) “sex”
2) “1″
8: hexists
描述:查看哈希表key中,给定域field是否存在
返回值:存在返回1,不存在返回0。
操作如下:
redis 127.0.0.1:6379> hexists uinfo_1 name
(integer) 0
redis 127.0.0.1:6379> hexists uinfo_1 sex
(integer) 1
9: hincrby
描述:为哈希表key中的域field的值加上增量increment。增量也可以为负数,相当于对给定域进
行减法操作。
返回值:执行HINCRBY命令之后,哈希表key中域field的值。
操作如下:
redis 127.0.0.1:6379> hgetall uinfo_1
1) “sex”
2) “1″
redis 127.0.0.1:6379> hincrby uinfo_1 sex 20
(integer) 21
redis 127.0.0.1:6379> hincrby uinfo_1 sex -10
(integer) 11
10:hlen
描述:返回哈希表key中域的数量。
返回值:哈希表中域的数量。当key不存在时,返回0。
11: hkeys
描述:返回哈希表key中的所有域。
返回值:一个包含哈希表中所有域的表。当key不存在时,返回一个空表。
12,hvals
描述:返回哈希表key中的所有值。
返回值:一个包含哈希表中所有值的表。当key不存在时,返回一个空表。

MySQLインデックスのカーディナリティは、クエリパフォーマンスに大きな影響を及ぼします。1。高いカーディナリティインデックスは、データ範囲をより効果的に狭め、クエリ効率を向上させることができます。 2。低カーディナリティインデックスは、完全なテーブルスキャンにつながり、クエリのパフォーマンスを削減する可能性があります。 3。ジョイントインデックスでは、クエリを最適化するために、高いカーディナリティシーケンスを前に配置する必要があります。

MySQL学習パスには、基本的な知識、コアの概念、使用例、最適化手法が含まれます。 1)テーブル、行、列、SQLクエリなどの基本概念を理解します。 2)MySQLの定義、作業原則、および利点を学びます。 3)インデックスやストアドプロシージャなどの基本的なCRUD操作と高度な使用法をマスターします。 4)インデックスの合理的な使用や最適化クエリなど、一般的なエラーのデバッグとパフォーマンス最適化の提案に精通しています。これらの手順を通じて、MySQLの使用と最適化を完全に把握できます。

MySQLの実際のアプリケーションには、基本的なデータベース設計と複雑なクエリの最適化が含まれます。 1)基本的な使用法:ユーザー情報の挿入、クエリ、更新、削除など、ユーザーデータの保存と管理に使用されます。 2)高度な使用法:eコマースプラットフォームの注文や在庫管理など、複雑なビジネスロジックを処理します。 3)パフォーマンスの最適化:インデックス、パーティションテーブル、クエリキャッシュを使用して合理的にパフォーマンスを向上させます。

MySQLのSQLコマンドは、DDL、DML、DQL、DCLなどのカテゴリに分割でき、データベースとテーブルの作成、変更、削除、データの挿入、更新、削除、複雑なクエリ操作の実行に使用できます。 1.基本的な使用には、作成可能な作成テーブル、INSERTINTO INSERTデータ、クエリデータの選択が含まれます。 2。高度な使用法には、テーブル結合、サブQueries、およびデータ集約のためのグループに参加します。 3.構文エラー、データ型の不一致、許可の問題などの一般的なエラーは、構文チェック、データ型変換、許可管理を介してデバッグできます。 4.パフォーマンス最適化の提案には、インデックスの使用、フルテーブルスキャンの回避、参加操作の最適化、およびデータの一貫性を確保するためのトランザクションの使用が含まれます。

INNODBは、ロックメカニズムとMVCCを通じて、非論的、一貫性、および分離を通じて原子性を達成し、レッドログを介した持続性を達成します。 1)原子性:Undologを使用して元のデータを記録して、トランザクションをロールバックできることを確認します。 2)一貫性:行レベルのロックとMVCCを介してデータの一貫性を確保します。 3)分離:複数の分離レベルをサポートし、デフォルトでrepeatable -readが使用されます。 4)持続性:Redologを使用して修正を記録し、データが長時間保存されるようにします。

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

MySQLは、中小企業に適しています。 1)中小企業は、顧客情報の保存など、基本的なデータ管理にMySQLを使用できます。 2)大企業はMySQLを使用して、大規模なデータと複雑なビジネスロジックを処理して、クエリのパフォーマンスとトランザクション処理を最適化できます。

INNODBは、次のキーロックメカニズムを通じてファントムの読み取りを効果的に防止します。 1)Next-KeyLockingは、Row LockとGap Lockを組み合わせてレコードとギャップをロックして、新しいレコードが挿入されないようにします。 2)実際のアプリケーションでは、クエリを最適化して分離レベルを調整することにより、ロック競争を削減し、並行性パフォーマンスを改善できます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
