この記事では、Redis に関する関連知識を紹介し、主に基本的なデータ型と操作に関する関連内容を紹介します。一緒に見ていきましょう。皆様のお役に立てれば幸いです。
推奨学習: Redis ビデオ チュートリアル
Redis の概要
redis は、主に開発者の Salvatore によって開発されたツールです。 Sanfilippo Antirez が開発したオープンソースのメモリ データ構造メモリは、Web サイトのスケーラビリティを向上させるために使用されており、データベース、キャッシュ、メッセージ ブローカーなどとして使用でき、プロジェクト内で Redis と組み合わせて使用できます。
Redis は豊富なデータ構造、優れた速度、充実した機能を備え、多くの企業で利用されており、次のような特徴があります:
- 速い
- NoSQL データベース
- 多くの環境をサポート
#Redis はインメモリ データベースです。つまり、すべてのデータはハードディスクではなくメモリに保存されます (もちろん、ハードディスクの完全バックアップです)。もサポートされています)および増分バックアップ)。メモリの特徴は、高速アクセスと高速検索をサポートできることですが、スペースの制限もあります。
データベース アーキテクチャでは、通常、Redis はクライアントとデータベースの間に配置され、NoSQL データベースまたはアプリケーションの負荷を軽減し、キャッシュ中のデータ アクセスの待ち時間を短縮します。
Redis の主な用途
Queue- Publish/Subscribe
- リアルタイム分析
- 機械学習: 機械学習用に大規模で多様かつ高速なデータを迅速に処理します
- 地理空間処理
- ランキング/数 (つまり、毎日よく見られる人気の検索)
-
セッション キャッシュ- フル ページ キャッシュ
-
Redis を使用している会社
Redis が使用されていますStart
インターネット上には多くのインストール チュートリアルがあります。ここでは例として Mac 側を示します。Redis サーバーをインストールした後、次のコマンドを使用して Redis サーバーを起動できます:
そして、次のコマンド -cli client を使用して redis を起動します:
redis-cli -h 127.0.0.1 -p 6379
ログイン後にコピー
図に示すように:
これで、オプションのメッセージをパラメーターとして受け入れることができます。 Redis PING コマンド、このコマンドは通常、クライアントとサーバー間の接続が正常かどうかをテストするために使用されます。ユーザーがパラメータなしでこのコマンドを実行すると、接続が正常であれば、サーバーはクライアントへの応答として PONG を返します。 Normal:
127.0.0.1:6379> PINGPONG
ログイン後にコピー
実際のテストは次のとおりです:
これで Redis の事前導入が完了しました。 Redis の基本的なデータ構造マシンの一般的な操作を見てみましょう。
Redis の基本データ型
String- Hash
- List
- Collection
- Ordered Set
- HyperLogLog
- Bitmap
-
この記事では、最初の 5 つの一般的なデータ構造を紹介し、その他のタイプについては他の記事で個別に紹介します。基本的なデータ型は次のとおりです。
String
String (string) は、Redis の最も基本的なキーと値のペアの型で、通常のテキストとシリアル化されたバイナリ データの両方を保持できます。
文字列型は、データベース内の 1 つのキーを 1 つの値に関連付けます。関連付けられたキーと値には、通常のテキスト データ、画像、ビデオ、オーディオ、圧縮されたファイルなどのより複雑なバイナリ データを使用できます。文字列型では最大 512M のデータを保存できます。
文字列に対する一般的な操作
SET コマンド: - SET 番号 "10086"
など、文字列に対応する値を設定します。
GET コマンド: キーに対応する値を取得します。-
127.0.0.1:6379> SET number "10086"OK127.0.0.1:6379> GET number"10086"127.0.0.1:6379>
ログイン後にコピー
GETRANGE: インターセプトされた文字列の内容を取得します。- STRLEN: 文字列の長さを取得します。
- STRLEN email
SETEX として: 有効期限 (秒) を含む KEY-VALUE を設定します (例: - SETEX city 5 北京
#) ## フラッシュ セール アクティビティ PSETEX 設定ミリ秒
- MSET:设置多个 KEY-VALUE ,如
MSET username jack sex male age 24
- MGET:获取多个 VALUE,如
MGET username sex age
- APPEND: 用于在字符串结尾追加内容
- INCR:数字自增加1 ,如
INCR number
127.0.0.1:6379> INCR number(integer) 10087127.0.0.1:6379>
ログイン後にコピー
- INCRBY:数字加上指定的整数值
- INCRBYFLOAT:数字加上指定的浮点数
- DECR:数字自增减一
- DECBY:数字减去指定的整数值
这些命令,大家都可以自己在。 Redis 客户端进行测试。
哈希类型
用来保存更复杂的结构化数据
- HSET:设置哈希表字段
- HMSET:设置哈希表多个字段
- HGET:获取哈希表字段值,如
HGET 8000 ename
- HMGET:获取多个哈希表字段值,如
HMGET 80000 ename job deptno
- HGETALL:获取所有哈希表字段值
- HKEYS:获取所有哈希表字段名
- HLEN:哈希表中的字段数量
- HEXISTS:判断哈希表是否存在某个字段
- HVALS:获取哈希表中的所有字段值
- HDEL:删除哈希表的字段
- HINCRBY:让哈希表某个字段值加上指定的整数值,如
HINCRBY 8000 deptono 10
- HINCRBYFLOART:让哈希表某个字段值加上指定的浮点数
列表类型
当我们需要向 VALUE 保存序列化的数据,可以使用列表类型
RPUSH dname 技术部 后勤部 售后部
LPUSH dname 秘书处
LSET dname 2 销售部
LRANGE dname 0 -1
ログイン後にコピー
- RPUSH:在列表末尾新增值
- LPUSH:在列表开头新增值
- LLEN:获取列表长度
- LINDEX:获取列表某个元素,如
lindex dname 0
- LINSERT:在某个位置插入元素,如
linsert dname before 秘书处 董事会
- LPOP:删除最左边的元素
LPOP dname
- RPOP:删除列表最右边的元素
RPOP dname
- LREM:删除列表某个元素,如
RPUSH employee Scott
RPUSH employee Jack
RPUSH employee Scott
LREM employee 1 Scott # 删除第一个Scott,不是指索引为一
ログイン後にコピー
集合类型
假如要求数据不允许重复,则可以使用集合类型。
集合操作
SADD empno 8000SADD empno 8001SADD empno 8002SADD empno 8003 8004 8005SMEMBERS empno
ログイン後にコピー
- SADD:将给定值添加到集合
- SCARD:获取集合长度,如:
SCARD empno
- SISMEMBER:判断是否含有某个元素,如
SISMENBER empno 8000
- SREM:删除某个元素
- SPOP:随机删除并返回集合的某个元素,如
SPOP empno
- SRANDMEMBER:随机返回集合中的元素,如
SRANDMEMBER empno 5
- SUNION:组合两个或多个集合并返回所有元素的列表
- SMOVE:将成员从一个集合移动到另一个集合
有序集合
带有排序功能的集合,Redis 按照元素分数值排序
ZADD keyword 0 "han" 0 "jack ma" 0 "Andrew wu"ZINCRBY keyword 1 "han"ZINCRBY keyword 5 "jack ma"ZINCRBY keyword 2 "Andrew wu"ZREVRANGE key 0 -1
ログイン後にコピー
- ZCARD:获取有序集合长度
- ZCOUNT:查询某个分数值区间内的元素数量,如
ZCOUNT keyword 5 10
- ZSCORE:查询元素的分数值
- ZRANGE:获取有序集合的内容(升序),如
ZRANGE keyword 0 -1
- ZREVRANGE:获取有序集合的内容(降序),如
ZREVRANGE keyword 0 -1
- ZRANGEBYSCORE:获取分数值区间内的集合内容(升序),如
zrangebyscore keyword 5 10 # 5-10
zrangebyscore keyword 5 (10 # 大于等于5, 小于 10
zrangebyscore keyword 100000 +inf
ログイン後にコピー
- ZREVRANGEBYSCORE:获取分数值区间内的集合内容(降序)
zrevrangebyscore keyword 10 5
- ZRANK:获取元素的升序排名(从0开始)
zrank keyword "xx"
- ZREVRANK:获取元素的降序排名(从0开始)
- ZREM:删除有序集合中的元素
ZREM keyword "x" "y"
- ZREMRANGEBYRANK:删除排名区间内的元素
zremrangebyrank keyword 0 2
- ZREMRANGEBYSCORE:删除分数值区间内的元素
zremrangebyscore keyword 0 -3
如 zremrangebyscore keyword inf (5000)
推荐学习:Redis视频教程
以上がRedis の基本的なデータ型と操作 (概要の共有)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。