redis基本使用
11721 ワード
redisとは
キー値タイプ
String文字タイプ
mapハッシュタイプ
リストタイプ
setコレクションタイプ
順序付き集合タイプ
redisの適用シーンキャッシュ(データ照会、短い接続、ニュースコンテンツ、商品コンテンツなど). 分散クラスタアーキテクチャにおけるsession分離. チャットルームのオンライン友達リスト. タスクキュー.(秒殺、買い占め、12306など) アプリケーションランキング. Webサイトアクセス統計. データの期限切れ処理(ミリ秒まで正確) redis取付位置
redisを開く
接続redis
Redisデータ型
String
に値を付ける
構文:set key value
値をとる
構文:get key
値を取り、値を割り当てる
構文:getset key value
複数のキー値の設定/取得
構文:mset key value[key value....]
削除削除キーすべてのタイプを削除できます
構文:del key[key...]
数値の増減増分数字格納された文字列が整数の場合、Redisは、現在のキー値を増分し、増分後の値を返すための実用的なコマンドINCRを提供する.
構文:incr key指定整数 をインクリメントする.
構文:incrby key increment減算値 構文:decr key指定整数 を減少する.
構文:decrby key decrement
末尾への値の追加
append key value
文字列の長さの取得
strlen key
hashハッシュタイプ
redis hash紹介
に値を付ける一度に1つのフィールド値 を設定
構文hset key field value複数のフィールド値を一度に設定 構文hmset key filed value[field value...]フィールドが存在しない場合、hsetのように、フィールドが存在する場合、コマンドは何も実行しないという違いがあります.
構文hsetnx key field value{{こうぶん:hsetnx key field value}}
値をとるは一度に1つのフィールド値 しか取得できません.
構文hget key fieldは一度に複数のフィールド値 を取得することができる.
構文hmgetkey field[field]すべてのフィールド値 を取得
構文hgetall key{{こうぶん:hgetall key}}
フィールドの削除
構文hdel key field[field...]
数字を増やす
構文hincrby key filed increment
フィールドまたはフィールド値のみ取得
構文hkeys key hvals key
フィールド数の取得
構文hlen key
List
ArrayListとLinkedListの違い ArrayListは配列を使用してデータを格納し、クエリーが速く、削除が遅いのが特徴です. LinkedListは双方向チェーンテーブルを使用してデータを格納し、特徴:削除が速く、クエリーが遅いが、クエリーチェーンテーブルの両端のデータも速く、 を先に出す. redisのlistはチェーンテーブルを用いて格納されるので、redisのlistデータ型の操作はlist両端データを操作して操作される.
リストの両端に要素を追加リスト左に要素 を追加
構文lpush key value[value...]リストの右側に要素 を追加
構文rpush key value[value...]
リストの表示
構文lrange key start stop
リストの両端から要素をポップアップ
構文lpop key rpop key
リスト内の要素の数を取得
構文llen key
リストで指定した値を削除
lremコマンドは、リスト内の前count個の値がvalueの要素を削除し、実際に削除した要素の数を返します.構造count値によって、このコマンドの実行方法が異なります. count>0の場合、lremはリストの左側から を削除します. count<0の場合、lremはリストの後ろから を削除する. count=0の場合、lremはvalueのすべての値を持つ要素を削除します.
構文lrem key count vlaue
指定したインデックスの要素値を取得
構文lindex key index{{こうぶん:lindex key index}}
指定した索引の要素値の設定
構文lset key index value
リスト指定クリップのみを保持
構文ltrim key start stop
リストに要素を挿入
構文:linsert key before|after pivot value
set
要素を追加
文法sadd key member[member...]
要素の削除
srem key member[member...]
コレクション内のすべての要素を取得
smembers key
要素が集合中に0が存在しないかどうかを判断する
sismember key member
コレクション内の要素の数を取得
構文:scard key
コレクションから要素をポップアップ
構文:spop key
sortedset sortedはzset とも呼ばれます sortedsetは秩序化された集合であり、並べ替え可能であるが、唯一の である. sortedsetとsetの違いは、setの要素にスコアを追加し、このスコアで をソートします.
要素を追加
構文:zadd key sore member[sore member]
要素のスコアの取得
構文:zscore key member
要素の削除
構文:zrem key member[member]
ランキング範囲で要素を削除
構文:zremrangebyrankkey start stop小さい頃から削除
スコア範囲で要素を削除
構文:zremrangebyscore key min max
範囲内の要素のリストを取得要素のスコアが小さい順に、startからstopまでのすべての要素(両端の要素を含む)のインデックス を返します.
構文:zrange key start top[withscores]は、startからstopの間のすべての要素(両端の要素を含む)の を、要素のスコアが大きい順に返す.
構文:zrevrange key start stop[withscores]
要素のランキングの取得小から大 構文:zrankkey member大きいから小さいまで 構文:zrevrank key member
指定したスコア範囲の要素を取得
構文:zrangebyscore key min max[withscores][limit offset count]
要素のスコアを増やす
構文:zincrby key increment member
コレクション内の要素の数を取得
構文:zcard key
指定したスコア範囲内の要素の数を取得
構文:zcount key min max
応用商品販売ランキング
商品販売量を書き込む商品番号1001の販売台数は9、商品番号1002の販売台数は10 ZADD items:sellsort 9 1001 10 1002 商品番号1001の販売量に1 ZINCRBY items:sellsort 1 1001 を加える商品売上上位10位:ZRANGE items:sellsort 0 9 withscores keysは、与えられたpatternを満たすすべてのkeyを返す
existsキーが存在するかどうかを確認
delキーを削除
rename名前変更key
type戻り値のタイプ
keyの生存時間を設定する
構文expire key sconds keyの生存時間(単位:秒)keyが何秒後に自動的に削除されるかを設定
ttl key key生存時間の表示
pexpire key milliseconds生存時間設定単位:ミリ秒
JAva使用
インポートjar
単列リンク
接続プール
2016.12.7
Redis c ,redis 。
キー値タイプ
String文字タイプ
mapハッシュタイプ
リストタイプ
setコレクションタイプ
順序付き集合タイプ
redisの適用シーン
/usr/local/redis-3.2.5/src
redisを開く
./redis-server redis.conf
接続redis
./redis-cli -h 127.0.0.1 -p 6379
Redisデータ型
String
に値を付ける
構文:set key value
127.0.0.1:6379> set name lihao
OK
値をとる
構文:get key
127.0.0.1:6379> get name
"lihao"
値を取り、値を割り当てる
構文:getset key value
127.0.0.1:6379> getset name huahua
"lihao"
複数のキー値の設定/取得
構文:mset key value[key value....]
mget key [key ...]
127.0.0.1:6379> mset key1 value1 key2 value2
OK
127.0.0.1:6379> mget key1 key2
1) "value1"
2) "value2"
削除削除キーすべてのタイプを削除できます
構文:del key[key...]
127.0.0.1:6379> del key1 key2
(integer) 2
数値の増減
構文:incr key
127.0.0.1:6379> incr num
(integer) 1
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> incr num
(integer) 3
構文:incrby key increment
127.0.0.1:6379> incrby num 2
(integer) 5
127.0.0.1:6379> decr num
(integer) 4
構文:decrby key decrement
127.0.0.1:6379> decrby num 10
(integer) -6
末尾への値の追加
APPEND value。 value,
SET key value。
append key value
127.0.0.1:6379> append name " hello"
(integer) 13
文字列の長さの取得
STRLEN , 0。
strlen key
127.0.0.1:6379> strlen name
(integer) 13
hashハッシュタイプ
redis hash紹介
hash , 。 ,
,
に値を付ける
hset , hset 1, 0。
構文hset key field value
127.0.0.1:6379> hset user username lihao
(integer) 1
127.0.0.1:6379> hmset user age 26 email [email protected]
OK
構文hsetnx key field value{{こうぶん:hsetnx key field value}}
127.0.0.1:6379> hsetnx user age 48
(integer) 0
値をとる
構文hget key field
127.0.0.1:6379> hget user username
"lihao"
構文hmgetkey field[field]
127.0.0.1:6379> hmget user username age
1) "lihao"
2) "26"
構文hgetall key{{こうぶん:hgetall key}}
127.0.0.1:6379> hgetall user
1) "username"
2) "lihao"
3) "age"
4) "26"
5) "email"
6) "[email protected]"
フィールドの削除
,
構文hdel key field[field...]
127.0.0.1:6379> hdel user age email
(integer) 2
数字を増やす
構文hincrby key filed increment
127.0.0.1:6379> hincrby user age 6
(integer) 51
フィールドまたはフィールド値のみ取得
構文hkeys key hvals key
127.0.0.1:6379> hkeys user
1) "username"
2) "age"
3) "email"
127.0.0.1:6379> hvals user
1) "lihao"
2) "51"
3) "[email protected]"
フィールド数の取得
構文hlen key
127.0.0.1:6379> hlen user
(integer) 3
List
ArrayListとLinkedListの違い
リストの両端に要素を追加
構文lpush key value[value...]
127.0.0.1:6379> lpush list:2 1 2 3
(integer) 3
構文rpush key value[value...]
127.0.0.1:6379> rpush list:2 4 5 6
(integer) 6
リストの表示
lrange , , start,stop ( ), 0 。 ,“-1 ”
構文lrange key start stop
127.0.0.1:6379> lrange list:2 0 1
1) "3"
2) "2"
127.0.0.1:6379> lrange list:2 0 -1
1) "3"
2) "2"
3) "1"
4) "4"
5) "5"
6) "6"
リストの両端から要素をポップアップ
lpop , :
構文lpop key rpop key
127.0.0.1:6379> lpop list:2
"1"
127.0.0.1:6379> rpop list:2
"6"
リスト内の要素の数を取得
構文llen key
127.0.0.1:6379> llen list:2
(integer) 2
リストで指定した値を削除
lremコマンドは、リスト内の前count個の値がvalueの要素を削除し、実際に削除した要素の数を返します.構造count値によって、このコマンドの実行方法が異なります.
構文lrem key count vlaue
127.0.0.1:6379> lrem list:2 2 8
(integer) 2
127.0.0.1:6379> lrem list:2 0 8
(integer) 2
指定したインデックスの要素値を取得
構文lindex key index{{こうぶん:lindex key index}}
127.0.0.1:6379> lindex list:1 2
"b"
指定した索引の要素値の設定
構文lset key index value
127.0.0.1:6379> lset list:1 2 e
OK
リスト指定クリップのみを保持
構文ltrim key start stop
127.0.0.1:6379> ltrim list:1 0 2
OK
リストに要素を挿入
pivot , before
after value 。
構文:linsert key before|after pivot value
127.0.0.1:6379> linsert list:1 before d f
(integer) 4
set
: ,
: ,
要素を追加
文法sadd key member[member...]
127.0.0.1:6379> sadd set:1 a b c
(integer) 3
要素の削除
srem key member[member...]
127.0.0.1:6379> srem set:1 a
(integer) 1
コレクション内のすべての要素を取得
smembers key
127.0.0.1:6379> smembers set:1
1) "c"
2) "b"
要素が集合中に0が存在しないかどうかを判断する
sismember key member
127.0.0.1:6379> sismember set:1 a
(integer) 0
127.0.0.1:6379> sismember set:1 b
(integer) 1
コレクション内の要素の数を取得
構文:scard key
127.0.0.1:6379> scard set:1
(integer) 2
コレクションから要素をポップアップ
, spop 。
構文:spop key
127.0.0.1:6379> spop set:1
"a"
127.0.0.1:6379> spop set:1
"e"
sortedset
要素を追加
, 。
, 。
構文:zadd key sore member[sore member]
127.0.0.1:6379> zadd scorebard 80 zhangsan 89 lisi 30 wangwu
(integer) 3
要素のスコアの取得
構文:zscore key member
127.0.0.1:6379> zscore scorebard lisi
"98"
要素の削除
構文:zrem key member[member]
127.0.0.1:6379> zrem scorebard lisi
(integer) 1
ランキング範囲で要素を削除
構文:zremrangebyrankkey start stop小さい頃から削除
127.0.0.1:6379> zremrangebyrank scorebard 0 1
(integer) 2
スコア範囲で要素を削除
構文:zremrangebyscore key min max
127.0.0.1:6379> zremrangebyscore scorebard 20 40
(integer) 1
範囲内の要素のリストを取得
構文:zrange key start top[withscores]
127.0.0.1:6379> zrange scorebard 0 20 withscores
1) "wangwu"
2) "30"
3) "huangdian"
4) "78"
5) "lihao"
6) "78"
7) "zhangsan"
8) "80"
構文:zrevrange key start stop[withscores]
127.0.0.1:6379> zrevrange scorebard 0 20 withscores
1) "zhangsan"
2) "80"
3) "lihao"
4) "78"
5) "huangdian"
6) "78"
7) "wangwu"
8) "30"
要素のランキングの取得
127.0.0.1:6379> zrank scorebard lihao
(integer) 2
127.0.0.1:6379> zrevrank scorebard zhangsan
(integer) 0
指定したスコア範囲の要素を取得
構文:zrangebyscore key min max[withscores][limit offset count]
127.0.0.1:6379> zrangebyscore scorebard 80 90 withscores
1) "zhangsan"
2) "80"
3) "adian"
4) "83"
5) "wangxiao"
6) "83"
7) "xiaohua"
8) "85"
9) "zhanghe"
10) "88"
要素のスコアを増やす
構文:zincrby key increment member
127.0.0.1:6379> zscore scorebard xiaohua
"85"
127.0.0.1:6379> zincrby scorebard 5 xiaohua
"90"
コレクション内の要素の数を取得
構文:zcard key
127.0.0.1:6379> zcard scorebard
(integer) 8
指定したスコア範囲内の要素の数を取得
構文:zcount key min max
127.0.0.1:6379> zcount scorebard 70 90
(integer) 7
応用商品販売ランキング
:
: (sorted set ),Key items:sellsort, 。
商品販売量を書き込む
keys java*
existsキーが存在するかどうかを確認
127.0.0.1:6379> exists lihao
(integer) 0
127.0.0.1:6379> exists test
(integer) 1
delキーを削除
del test
rename名前変更key
127.0.0.1:6379> rename test test_new
OK
type戻り値のタイプ
127.0.0.1:6379> type scorebard
zset
127.0.0.1:6379> type list:2
list
keyの生存時間を設定する
redis , ,
: .
構文expire key sconds keyの生存時間(単位:秒)keyが何秒後に自動的に削除されるかを設定
ttl key key生存時間の表示
pexpire key milliseconds生存時間設定単位:ミリ秒
JAva使用
インポートjar
commons-pool2-2.3.jar
jedis-2.7.0.jar
単列リンク
Jedis jedis = new Jedis("127.0.0.1", 6379);
Set keys = jedis.keys("*");
Iterator it = keys.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
jedis.close();
接続プール
JedisPool pool = new JedisPool("127.0.0.1", 6379);
Jedis jedis = pool.getResource();
Set keys = jedis.keys("java*");
Iterator it = keys.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
jedis.close();
pool.close();
2016.12.7