Redis Redis Template使用概要
86464 ワード
Redis Redis Template使用概要
RedisのStringデータ構造 void set(K key, V value); void set(K key, V value, long timeout, TimeUnit unit); void set(K key, V value, long offset); 所与のkeyに格納文字列値を上書き(overwrite)し、オフセットoffsetから を開始する. V getAndSet(K key, V value); キーの文字列値を設定し、古い値 を返します. Integer append(K key, String value); キーが既に存在し、文字列である場合、コマンドはその値を文字列の末尾に追加します.キーが存在しない場合は、空の文字列として作成され、設定されるため、APPENDはこの場合、SETと同様になります.
RedisのListデータ構造 Long size(K key);キーに格納されているリストの長さを返します.キーが存在しない場合は、空のリストとして解釈し、0を返します.keyが格納した値がリストでない場合にエラーが返されます. Long leftPush(K key, V value); キーのリストに格納されているすべての値を挿入します.キーが存在しない場合は、プッシュ操作を実行する前に空のリストとして作成します.(左から挿入) Long leftPushAll(K key, V… values); リストに1つの配列を一括して挿入する Long rightPush(K key, V value); キーのリストに格納されているすべての値を挿入します.キーが存在しない場合は、プッシュ操作を実行する前に空のリストとして作成します.(右から挿入) Long rightPushAll(K key, V… values); Long rightPush(K key, V value); Long rightPushAll(K key, V… values); void set(K key, long index, V value); リスト内のindexの位置にvalue値 を設定する Long remove(K key, long count, Object value); キーに格納されたリストから値に等しい要素の最初のカウントイベントを削除します.カウントパラメータは、 V index(K key, long index); 下の表から取得するリストの値は、0から始まる です. V leftPop(K key); 一番左の要素がポップアップされ、ポップアップ後、この値はリストに は存在しません. V rightPop(K key); 一番右の要素がポップアップされ、ポップアップ後、この値はリストに は存在しません.
RedisのHashデータ機構 Long delete(H key, Object… hashKeys); 指定されたハッシュhashKeys を削除 Boolean hasKey(H key, Object hashKey); ハッシュhashKeyが 存在するかどうかを決定する Object get(H key, Object hashKey); Set keys(H key); keyに対応するハッシュリストを取得するkey Long size(H key); 取得keyに対応するハッシュリストのサイズ個数 void putAll(H key, Map extends HK, ? extends HV> m); mで指定する複数のハッシュフィールドを使用してkeyに対応するハッシュテーブルの に設定する. void put(H key, HK hashKey, HV value); ハッシュhashKeyの値 を設定 List values(H key)は、鍵 に従ってハッシュ全体の格納値を取得する. Map entries(H key); ハッシュストレージ全体を取得鍵 に従って Cursor> scan(H key, ScanOptions options); Cursorを使用してkeyのhashで反復し、反復器に相当します.
RedisのSetデータ構造 Long add(K key, V… values); 無秩序な集合に要素を追加し、追加個数を返すaddに直接複数の値を追加することもできます:template.opsForSet().add(“setTest”,“aaa”,“bbb”) Long remove(K key, Object… values); コレクションから1つ以上のメンバーを削除する V pop(K key); セット内のランダム要素 を除去して戻す Boolean move(K key, V value, K destKey); メンバー要素をsourceコレクションからdestinationコレクション に移動する Long size(K key); 無秩序集合のサイズ長さ Set members(K key); コレクション内のすべてのメンバー を返します. Cursor scan(K key, ScanOptions options); set を巡る
RedisのZSetデータ構造 Boolean add(K key, V value, double score); 秩序化された集合が追加され、存在する場合false、存在しない場合true Long add(K key, Set tuples); 新しい順序付き集合 Long remove(K key, Object… values); 1つまたは複数の要素 を整列集合から除去する. Long rank(K key, Object o); 順序セットの指定メンバーの順位を返します.順序セットのメンバーは、小数点以下から大きい順に に並べられます. Set range(K key, long start, long end); 指定した区間内のメンバーは、インデックス区間から戻る順序セットで合成され、順序セットメンバーは、小数点以下から大きい順に に並べられる. Long count(K key, double min, double max); 指定区間内のメンバー数 をスコアで返す. Long size(K key); 秩序化された集合のメンバー数を取得し、内部呼び出しはzCardメソッド である. Double score(K key, Object o); 指定したメンバーのscore値 を取得 Long removeRange(K key, long start, long end); 指定したインデックス位置のメンバーを削除します.ここで、整列セットのメンバーは、小数点以下から大きい順に に並べられます. Cursor scan(K key, ScanOptions options); zset を巡る
リファレンス
RedisのStringデータ構造
redisTemplate.opsForValue().set("num","123");
redisTemplate.opsForValue().get("num") 123
redisTemplate.opsForValue().set("num","123",10, TimeUnit.SECONDS);
redisTemplate.opsForValue().get("num") 10 , , null
template.opsForValue().set("key","hello world");
template.opsForValue().set("key","redis", 6);
System.out.println("***************"+template.opsForValue().get("key"));
:***************hello redis
template.opsForValue().set("getSetTest","test");
System.out.println(template.opsForValue().getAndSet("getSetTest","test2"));
:test
template.opsForValue().append("test","Hello");
System.out.println(template.opsForValue().get("test"));
template.opsForValue().append("test","world");
System.out.println(template.opsForValue().get("test"));
Hello
Helloworld
RedisのListデータ構造
System.out.println(template.opsForList().size("list"));
6
template.opsForList().leftPush("list","java");
template.opsForList().leftPush("list","python");
template.opsForList().leftPush("list","c++");
1
2
3
String[] strs = new String[]{
"1","2","3"};
template.opsForList().leftPushAll("list",strs);
System.out.println(template.opsForList().range("list",0,-1));
[3, 2, 1]
template.opsForList().rightPush("listRight","java");
template.opsForList().rightPush("listRight","python");
template.opsForList().rightPush("listRight","c++");
1
2
3
String[] strs = new String[]{
"1","2","3"};
template.opsForList().rightPushAll("list",strs);
//range 0
System.out.println(template.opsForList().range("list",0,-1));
[1, 2, 3]
template.opsForList().rightPush("listRight","java");
template.opsForList().rightPush("listRight","python");
template.opsForList().rightPush("listRight","c++");
1
2
3
String[] strs = new String[]{
"1","2","3"};
template.opsForList().rightPushAll("list",strs);
System.out.println(template.opsForList().range("list",0,-1));
[1, 2, 3]
System.out.println(template.opsForList().range("listRight",0,-1));
template.opsForList().set("listRight",1,"setValue");
System.out.println(template.opsForList().range("listRight",0,-1));
[java, python, oc, c++]
[java, setValue, oc, c++]
count> 0
:最初から最後まで移動した値に等しい要素を削除します.count <0
:末尾から移動した値に等しい要素を削除します.count = 0
:valueに等しいすべての要素を削除します.System.out.println(template.opsForList().range("listRight",0,-1));
template.opsForList().remove("listRight",1,"setValue");// “setValue”。
System.out.println(template.opsForList().range("listRight",0,-1));
[java, setValue, oc, c++]
[java, oc, c++]
System.out.println(template.opsForList().range("listRight",0,-1));
System.out.println(template.opsForList().index("listRight",2));
[java, oc, c++]
c++
System.out.println(template.opsForList().range("list",0,-1));
System.out.println(template.opsForList().leftPop("list"));
System.out.println(template.opsForList().range("list",0,-1));
[c++, python, oc, java, c#, c#]
c++
[python, oc, java, c#, c#]
System.out.println(template.opsForList().range("list",0,-1));
System.out.println(template.opsForList().rightPop("list"));
System.out.println(template.opsForList().range("list",0,-1));
[python, oc, java, c#, c#]
c#
[python, oc, java, c#]
RedisのHashデータ機構
System.out.println(template.opsForHash().delete("redisHash","name"));
//entries
System.out.println(template.opsForHash().entries("redisHash"));
1
{
class=6, age=28.1}
System.out.println(template.opsForHash().hasKey("redisHash","666"));
System.out.println(template.opsForHash().hasKey("redisHash","777"));
true
false
System.out.println(template.opsForHash().get("redisHash","age"));
26
System.out.println(template.opsForHash().keys("redisHash"));
//redisHash {class=1, name=666, age=27}
[name, class, age]
System.out.println(template.opsForHash().size("redisHash"));
//redisHash {class=1, name=666, age=27}
3
Map<String,Object> testMap = new HashMap();
testMap.put("name","666");
testMap.put("age",27);
testMap.put("class","1");
template.opsForHash().putAll("redisHash1",testMap);
System.out.println(template.opsForHash().entries("redisHash1"));
{
class=1, name=jack, age=27}
template.opsForHash().put("redisHash","name","666");
template.opsForHash().put("redisHash","age",26);
template.opsForHash().put("redisHash","class","6");
System.out.println(template.opsForHash().entries("redisHash"));
{
age=26, class=6, name=666}
System.out.println(template.opsForHash().values("redisHash"));
[tom, 26, 6]
System.out.println(template.opsForHash().entries("redisHash"));
{
age=26, class=6, name=tom}
Cursor<Map.Entry<Object, Object>> curosr = template.opsForHash().scan("redisHash",
ScanOptions.ScanOptions.NONE);
while(curosr.hasNext()){
Map.Entry<Object, Object> entry = curosr.next();
System.out.println(entry.getKey()+":"+entry.getValue());
}
age:27
class:6
name:666
RedisのSetデータ構造
String[] strs= new String[]{
"str1","str2"};
System.out.println(template.opsForSet().add("setTest", strs));
2
String[] strs = new String[]{
"str1","str2"};
System.out.println(template.opsForSet().remove("setTest",strs));
2
System.out.println(template.opsForSet().pop("setTest"));
System.out.println(template.opsForSet().members("setTest"));
bbb
[aaa, ccc]
template.opsForSet().move("setTest","aaa","setTest2");
System.out.println(template.opsForSet().members("setTest"));
System.out.println(template.opsForSet().members("setTest2"));
[ccc]
[aaa]
System.out.println(template.opsForSet().size("setTest"));
1
System.out.println(template.opsForSet().members("setTest"));
[ddd, bbb, aaa, ccc]
Cursor<Object> curosr = template.opsForSet().scan("setTest", ScanOptions.NONE);
while(curosr.hasNext()){
System.out.println(curosr.next());
}
ddd
bbb
aaa
ccc
RedisのZSetデータ構造
System.out.println(template.opsForZSet().add("zset1","zset-1",1.0));
true
ZSetOperations.TypedTuple<Object> objectTypedTuple1 = new DefaultTypedTuple<>("zset-5",9.6);
ZSetOperations.TypedTuple<Object> objectTypedTuple2 = new DefaultTypedTuple<>("zset-6",9.9);
Set<ZSetOperations.TypedTuple<Object>> tuples = new HashSet<ZSetOperations.TypedTuple<Object>>();
tuples.add(objectTypedTuple1);
tuples.add(objectTypedTuple2);
System.out.println(template.opsForZSet().add("zset1",tuples));
System.out.println(template.opsForZSet().range("zset1",0,-1));
[zset-1, zset-2, zset-3, zset-4, zset-5, zset-6]
System.out.println(template.opsForZSet().range("zset1",0,-1));
System.out.println(template.opsForZSet().remove("zset1","zset-6"));
System.out.println(template.opsForZSet().range("zset1",0,-1));
[zset-1, zset-2, zset-3, zset-4, zset-5, zset-6]
1
[zset-1, zset-2, zset-3, zset-4, zset-5]
System.out.println(template.opsForZSet().range("zset1",0,-1));
System.out.println(template.opsForZSet().rank("zset1","zset-2"));
[zset-2, zset-1, zset-3, zset-4, zset-5]
0 //
System.out.println(template.opsForZSet().range("zset1",0,-1));
[zset-2, zset-1, zset-3, zset-4, zset-5]
System.out.println(template.opsForZSet().rangeByScore("zset1",0,5));
System.out.println(template.opsForZSet().count("zset1",0,5));
[zset-2, zset-1, zset-3]
3
System.out.println(template.opsForZSet().size("zset1"));
6
System.out.println(template.opsForZSet().score("zset1","zset-1"));
2.2
System.out.println(template.opsForZSet().range("zset2",0,-1));
System.out.println(template.opsForZSet().removeRange("zset2",1,2));
System.out.println(template.opsForZSet().range("zset2",0,-1));
[zset-1, zset-2, zset-3, zset-4]
2
[zset-1, zset-4]
Cursor<ZSetOperations.TypedTuple<Object>> cursor = template.opsForZSet().scan("zzset1", ScanOptions.NONE);
while (cursor.hasNext()){
ZSetOperations.TypedTuple<Object> item = cursor.next();
System.out.println(item.getValue() + ":" + item.getScore());
}
zset-1:1.0
zset-2:2.0
zset-3:3.0
zset-4:6.0
リファレンス