Redisデータ構造
19920 ワード
詳細
1.Redisデータ型の説明
2.Redisデータ構造の文字列タイプ
3.Redisデータ構造のハッシュタイプ
4.Redisデータ構造のListタイプ
5.Redisデータ構造のSetタイプ
6.Redisデータ構造のsorted-setタイプ
7.RedisのKeys共通動作
1.Redisデータ型の説明
:
(String)
(list)
(sorted set)
(hash)
(set)
Key :
, ,
2.Redisデータ構造の文字列タイプ
127.0.0.1:6379> set name andrew
OK
127.0.0.1:6379> get name
"andrew"
127.0.0.1:6379> getset name tony
"andrew"
127.0.0.1:6379> get name
"tony"
127.0.0.1:6379> del name
(integer)1
127.0.0.1:6379> get name
(nil)
incr, 0,
127.0.0.1:6379> incr n1
(integer) 1
127.0.0.1:6379> get n1
"1"
127.0.0.1:6379> set n2 2
OK
127.0.0.1:6379> incr n2
(integer) 3
127.0.0.1:6379> get n2
"3"
127.0.0.1:6379> set n3 andrew
OK
127.0.0.1:6379> incr n3
(error) ERR value is not an integer or out of range
decr
127.0.0.1:6379> get n2
"3"
127.0.0.1:6379> decr n2
(integer) 2
127.0.0.1:6379> decr n4
(integer) -1
incrby
127.0.0.1:6379> get n4
"-1"
127.0.0.1:6379> incrby n4 8
(integer) 7
decrby
127.0.0.1:6379> get n4
"7"
127.0.0.1:6379> decrby n4 5
(integer) 2
append ,
127.0.0.1:6379> append s1 str
(integer) 3
127.0.0.1:6379> get s1
"str"
127.0.0.1:6379> append s1 abc
(integer) 6
127.0.0.1:6379> get s1
"strabc"
127.0.0.1:6379> keys *
1) "n1"
2) "n2"
3) "s1"
4) "n3"
5) "n4"
127.0.0.1:6379> del n1 n2 n3 n4
(integer) 4
127.0.0.1:6379> keys *
1) "s1"
3.Redisデータ構造のハッシュタイプ
Hash
String key String Value Map , Hash 4294967295
Hash :
127.0.0.1:6379> hset h1 username andrew
(integer) 1
127.0.0.1:6379> hset h1 password 123456
(integer) 1
127.0.0.1:6379> hget h1 username
"andrew"
127.0.0.1:6379> hget h1 password
"123456"
( )
127.0.0.1:6379> hmset h2 username tony password 654321
OK
127.0.0.1:6379> hmget h2 username
1) "tony"
127.0.0.1:6379> hmget h2 password
1) "654321"
127.0.0.1:6379> hmget h2 username password
1) "tony"
2) "654321"
127.0.0.1:6379> hgetall h2
1) "username"
2) "tony"
3) "password"
4) "654321"
hdel ,
127.0.0.1:6379> hdel h2 username password
(integer) 2
127.0.0.1:6379> hgetall h2
(empty list or set)
hincrby
127.0.0.1:6379> hset h1 age 20
(integer) 1
127.0.0.1:6379> hincrby h1 age 5
(integer) 25
hexists 1 0
127.0.0.1:6379> hexists h1 age
(integer) 1
127.0.0.1:6379> hexists h1 age2
(integer) 0
hlen hash
127.0.0.1:6379> hlen h1
(integer) 3
127.0.0.1:6379> hlen h2
(integer) 0
hkeys
127.0.0.1:6379> hkeys h1
1) "username"
2) "password"
3) "age"
127.0.0.1:6379> hkeys h2
(empty list or set)
hvals
127.0.0.1:6379> hvals h1
1) "andrew"
2) "123456"
3) "25"
127.0.0.1:6379> hvals h2
(empty list or set)
4.Redisデータ構造のListタイプ
list:
ArrayList
LinkedList
list
、 、
lpush ,
127.0.0.1:6379> lpush l1 a b c d
(integer) 4
127.0.0.1:6379> lpush l1 1 2 3 4
(integer) 8
lrange
1 , ,
127.0.0.1:6379> lrange l1 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
5) "d"
6) "c"
7) "b"
8) "a"
1 7
127.0.0.1:6379> lrange l1 0 6
1) "4"
2) "3"
3) "2"
4) "1"
5) "d"
6) "c"
7) "b"
rpush ( )
127.0.0.1:6379> rpush l2 a b c d
(integer) 4
127.0.0.1:6379> rpush l2 1 2 3 4
(integer) 8
127.0.0.1:6379> lrange l2 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "1"
6) "2"
7) "3"
8) "4"
127.0.0.1:6379> lrange l2 0 6
1) "a"
2) "b"
3) "c"
4) "d"
5) "1"
6) "2"
7) "3"
lpop
rpop
127.0.0.1:6379> rpop l2
"a"
127.0.0.1:6379> lrange l2 0 -1
1) "b"
2) "c"
3) "d"
4) "1"
5) "2"
6) "3"
7) "4"
127.0.0.1:6379> rpop l2
"4"
127.0.0.1:6379> lrange l2 0 -1
1) "b"
2) "c"
3) "d"
4) "1"
5) "2"
6) "3"
llen
127.0.0.1:6379> llen l2
(integer) 6
lpushx
127.0.0.1:6379> lpushx l2 xx
(integer) 7
127.0.0.1:6379> lrange l2 0 -1
1) "xx"
2) "b"
3) "c"
4) "d"
5) "1"
6) "2"
7) "3"
rpushx
127.0.0.1:6379> rpushx l2 yy
(integer) 8
127.0.0.1:6379> lrange l2 0 -1
1) "xx"
2) "b"
3) "c"
4) "d"
5) "1"
6) "2"
7) "3"
8) "yy"
lpush
127.0.0.1:6379> lpush l2 a1 a2
(integer) 10
127.0.0.1:6379> lrange l2 0 -1
1) "a2"
2) "a1"
3) "xx"
4) "b"
5) "c"
6) "d"
7) "1"
8) "2"
9) "3"
10) "yy"
127.0.0.1:6379> rpush l2 a3 a4
(integer) 12
127.0.0.1:6379> lrange l2 0 -1
1) "a2"
2) "a1"
3) "xx"
4) "b"
5) "c"
6) "d"
7) "1"
8) "2"
9) "3"
10) "yy"
11) "a3"
12) "a4"
lrem
l3
127.0.0.1:6379> lpush l3 1 3 2 3 2 1 2 1 3
(integer) 9
127.0.0.1:6379> lrange l3 0 -1
1) "3"
2) "1"
3) "2"
4) "1"
5) "2"
6) "3"
7) "2"
8) "3"
9) "1"
2 1
127.0.0.1:6379> lrem l3 2 1
(integer) 2
127.0.0.1:6379> lrange l3 0 -1
1) "3"
2) "2"
3) "2"
4) "3"
5) "2"
6) "3"
7) "1"
2 3
127.0.0.1:6379> lrem l3 -2 3
(integer) 2
127.0.0.1:6379> lrange l3 0 -1
1) "3"
2) "2"
3) "2"
4) "2"
5) "1"
2
127.0.0.1:6379> lrem l3 0 2
(integer) 3
127.0.0.1:6379> lrange l3 0 -1
1) "3"
2) "1"
lset
127.0.0.1:6379> lrange l1 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
5) "d"
6) "c"
7) "b"
8) "a"
0
127.0.0.1:6379> lset l1 3 xxxx
OK
127.0.0.1:6379> lrange l1 0 -1
1) "4"
2) "3"
3) "2"
4) "xxxx"
5) "d"
6) "c"
7) "b"
8) "a"
linsert
xxxx aa
127.0.0.1:6379> linsert l1 before xxxx aa
(integer) 9
127.0.0.1:6379> lrange l1 0 -1
1) "4"
2) "3"
3) "2"
4) "aa"
5) "xxxx"
6) "d"
7) "c"
8) "b"
9) "a"
xxxx bb
127.0.0.1:6379> linsert l1 after xxxx bb
(integer) 10
127.0.0.1:6379> lrange l1 0 -1
1) "4"
2) "3"
3) "2"
4) "aa"
5) "xxxx"
6) "bb"
7) "d"
8) "c"
9) "b"
10) "a"
rpoplpush A B
127.0.0.1:6379> rpush l4 a b c
(integer) 3
127.0.0.1:6379> rpush l5 1 2 3
(integer) 3
127.0.0.1:6379> lrange l4 0 -1
1) "a"
2) "b"
3) "c"
127.0.0.1:6379> lrange l5 0 -1
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> rpoplpush l4 l5
"c"
127.0.0.1:6379> lrange l4 0 -1
1) "a"
2) "b"
127.0.0.1:6379> lrange l5 0 -1
1) "c"
2) "1"
3) "2"
4) "3"
5.Redisデータ構造のSetタイプ
Set List ,Set
Set 4294967295
set :
/
sadd key member [member ...]
set
127.0.0.1:6379> sadd set1 a b c
(integer) 3
smembers key
key
127.0.0.1:6379> smembers set1
1) "c"
2) "b"
3) "a"
127.0.0.1:6379> sadd set1 a d e
(integer) 2
127.0.0.1:6379> smembers set1
1) "c"
2) "d"
3) "b"
4) "a"
5) "e"
srem key member [member ...]
127.0.0.1:6379> srem set1 a d
(integer) 2
127.0.0.1:6379> smembers set1
1) "b"
2) "c"
3) "e"
sismember key member
, 1 , 0 。
127.0.0.1:6379> sismember set1 a
(integer) 0
127.0.0.1:6379> sismember set1 b
(integer) 1
sdiff
127.0.0.1:6379> sadd set2 a b c
(integer) 3
127.0.0.1:6379> sadd set3 b c d e
(integer) 4
127.0.0.1:6379> sdiff set2 set3
1) "a"
127.0.0.1:6379> sdiff set3 set2
1) "d"
2) "e"
, ,
sinter
127.0.0.1:6379> sinter set2 set3
1) "c"
2) "b"
sunion
127.0.0.1:6379> sunion set2 set3
1) "e"
2) "a"
3) "b"
4) "c"
5) "d"
scard
127.0.0.1:6379> smembers set1
1) "b"
2) "c"
3) "e"
127.0.0.1:6379> scard set1
(integer) 3
srandmember
127.0.0.1:6379> srandmember set1
"c"
127.0.0.1:6379> srandmember set1
"e"
sdiffstore
127.0.0.1:6379> smembers set2
1) "c"
2) "b"
3) "a"
127.0.0.1:6379> smembers set3
1) "c"
2) "e"
3) "d"
4) "b"
127.0.0.1:6379> sdiffstore r1 set2 set3
(integer) 1
127.0.0.1:6379> smembers r1
1) "a"
sinterstore
127.0.0.1:6379> sinterstore r2 set2 set3
(integer) 2
127.0.0.1:6379> smembers r2
1) "c"
2) "b"
sunionstore
127.0.0.1:6379> sunionstore r3 set2 set3
(integer) 5
127.0.0.1:6379> smembers r3
1) "e"
2) "a"
3) "b"
4) "c"
5) "d"
Set
6.Redisデータ構造のsorted-setタイプ
Sorted-Set
Sorted-Set Set
Sorted-Set
Sorted-set
zadd ,
127.0.0.1:6379> zadd sort1 5 a 4 b 6 c
(integer) 3
sort1 a,b,c 5,4,6
;
zrange -1
127.0.0.1:6379> zrange sort1 0 -1
1) "b"
2) "a"
3) "c"
,
,
b 7
127.0.0.1:6379> zadd sort1 7 b
(integer) 0
zscore b
127.0.0.1:6379> zscore sort1 b
"7"
;
127.0.0.1:6379> zrange sort1 0 -1
1) "a"
2) "c"
3) "b"
,
127.0.0.1:6379> zadd sort1 9 d
(integer) 1
127.0.0.1:6379> zrange sort1 0 -1
1) "a"
2) "c"
3) "b"
4) "d"
zrem
127.0.0.1:6379> zrem sort1 b
(integer) 1
127.0.0.1:6379> zrange sort1 0 -1
1) "a"
2) "c"
3) "d"
zcard
127.0.0.1:6379> zcard sort1
(integer) 3
withscores
127.0.0.1:6379> zrange sort1 0 -1 withscores
1) "a"
2) "5"
3) "c"
4) "6"
5) "d"
6) "9"
zrevrange
127.0.0.1:6379> zrevrange sort1 0 -1 withscores
1) "d"
2) "9"
3) "c"
4) "6"
5) "a"
6) "5"
127.0.0.1:6379> zadd sort1 10 e 5 f
(integer) 2
zremrangebyrank 3
127.0.0.1:6379> zremrangebyrank sort1 0 2
(integer) 3
127.0.0.1:6379> zrange sort1 0 -1 withscores
1) "d"
2) "9"
3) "e"
4) "10"
127.0.0.1:6379> zadd sort1 11 f 16 g 18 h
(integer) 3
127.0.0.1:6379> zrange sort1 0 -1 withscores
1) "d"
2) "9"
3) "e"
4) "10"
5) "f"
6) "11"
7) "g"
8) "16"
9) "h"
10) "18"
zremrangebyscore
127.0.0.1:6379> zremrangebyscore sort1 10 16
(integer) 3
127.0.0.1:6379> zrange sort1 0 -1 withscores
1) "d"
2) "9"
3) "h"
4) "18"
127.0.0.1:6379> zadd sort1 20 i 23 j 30 k
(integer) 3
127.0.0.1:6379> zrange sort1 0 -1 withscores
1) "d"
2) "9"
3) "h"
4) "18"
5) "i"
6) "20"
7) "j"
8) "23"
9) "k"
10) "30"
zrangebyscore
127.0.0.1:6379> zrangebyscore sort1 18 23 withscores
1) "h"
2) "18"
3) "i"
4) "20"
5) "j"
6) "23"
limit
127.0.0.1:6379> zrangebyscore sort1 18 23 withscores limit 0 2
1) "h"
2) "18"
3) "i"
4) "20"
zincrby
127.0.0.1:6379> zincrby sort1 5 h
"23"
127.0.0.1:6379> zrange sort1 0 -1 withscores
1) "d"
2) "9"
3) "i"
4) "20"
5) "h"
6) "23"
7) "j"
8) "23"
9) "k"
10) "30"
zcount
127.0.0.1:6379> zcount sort1 20 23
(integer) 3
Sorted-Set : ,
7.RedisのKeys共通動作
keys * key
127.0.0.1:6379> keys *
1) "sort1"
2) "l2"
3) "set2"
4) "r1"
5) "h1"
6) "n2"
7) "l3"
8) "r2"
9) "s1"
10) "set3"
11) "set1"
12) "r3"
13) "n"
14) "n3"
15) "nn"
16) "l1"
s key
s*,*
127.0.0.1:6379> keys s*
1) "sort1"
2) "set2"
3) "s1"
4) "set3"
5) "set1"
s key
127.0.0.1:6379> keys s?
1) "s1"
del key
127.0.0.1:6379> del n2 n3 nn
(integer) 3
exists key ,1 ,0 。
127.0.0.1:6379> exists n2
(integer) 0
127.0.0.1:6379> exists l1
(integer) 1
get
127.0.0.1:6379> get n
"1"
rename key
127.0.0.1:6379> rename n n2
OK
127.0.0.1:6379> get n
(nil)
127.0.0.1:6379> get n2
"1"
expire n2
127.0.0.1:6379> expire n2 120
(integer) 1
ttl
127.0.0.1:6379> ttl n2
(integer) 116
type
127.0.0.1:6379> type n2
string
127.0.0.1:6379> type l1
list
127.0.0.1:6379> type s1
string
127.0.0.1:6379> type sort1
zset