redis学习笔记

redis数据类型及支持的常用操作:

string

set/get/append/incr/decr/getrange/mget/mset/strlen

127.0.0.1:6379> set usersession:1 13323232323
OK
127.0.0.1:6379> get usersession:1
"13323232323"
127.0.0.1:6379> incr usersession:1
(integer) 13323232324
get  usersession:1 //  13323232324
 127.0.0.1:6379> append usersession:1 "extra data"
(integer) 21
127.0.0.1:6379> get usersession:1
"13323232324extra data"
127.0.0.1:6379> set customer:1 "customer00123"
OK
127.0.0.1:6379> getrange customer:1 8 13
"00123"

 127.0.0.1:6379> strlen customer:1
  (integer) 13

127.0.0.1:6379> mset order:1 "order1 data" order:2 "order2 data"
OK
127.0.0.1:6379> mget order:1 order:2
1) "order1 data"
2) "order2 data"

list : order list

just a sorted list of strings, sorted by insertion order

可以执行以下操作:

lpush/rpush/lrem/lset/lindex/lrange/llen/lpop/rpop/ltrim

127.0.0.1:6379> lpush recentcomments "comment 1"
(integer) 1
127.0.0.1:6379> lrange recentcomments 0 1
1) "comment 1"
127.0.0.1:6379> lpush recentcomments "comment 2"
(integer) 2
127.0.0.1:6379> lrange recentcomments 0 2
1) "comment 2"
2) "comment 1"
127.0.0.1:6379> rpush recentcomments "comment 3"
(integer) 3
127.0.0.1:6379> lrange recentcomments 0 3
1) "comment 2"
2) "comment 1"
3) "comment 3"
127.0.0.1:6379> rpush recentcomments "comment 4"
(integer) 4
127.0.0.1:6379> rpush recentcomments "comment 5"
(integer) 5
127.0.0.1:6379> lrange recentcomments 0 6
1) "comment 2"
2) "comment 1"
3) "comment 3"
4) "comment 4"
5) "comment 5"
127.0.0.1:6379> rpush recentcomments "comment 6"
(integer) 6
127.0.0.1:6379> lrange recentcomments 0 6
1) "comment 2"
2) "comment 1"
3) "comment 3"
4) "comment 4"
5) "comment 5"
6) "comment 6"
127.0.0.1:6379> ltrim recentcomments 0 4
OK
127.0.0.1:6379> lrange recentcomments 0 6
1) "comment 2"
2) "comment 1"
3) "comment 3"
4) "comment 4"
5) "comment 5"
127.0.0.1:6379>


127.0.0.1:6379> lindex recentcomments 2
"comment 3"
127.0.0.1:6379> lrange recentcomments 0 5
1) "comment 2"
2) "comment 1"
3) "comment 3"
4) "comment 4"
5) "comment 5"
127.0.0.1:6379> lpop recentcomments
"comment 2"
127.0.0.1:6379> lrange recentcomments 0 5
1) "comment 1"
2) "comment 3"
3) "comment 4"
4) "comment 5"
127.0.0.1:6379> lpop recentcomments
"comment 1"
127.0.0.1:6379> lrange recentcomments 0 5
1) "comment 3"
2) "comment 4"
3) "comment 5"
127.0.0.1:6379> rpop recentcomments
"comment 5"
127.0.0.1:6379> lrange recentcomments 0 5
1) "comment 3"
2) "comment 4"
127.0.0.1:6379>

redis> RPUSH mylist "hello"
(integer) 1
redis> RPUSH mylist "hello"
(integer) 2
redis> RPUSH mylist "foo"
(integer) 3
redis> RPUSH mylist "hello"
(integer) 4
redis> LREM mylist -2 "hello"
(integer) 2
redis> LRANGE mylist 0 -1
1) "hello"
2) "foo"

sets: 

sets contain a collection of unique strings

sadd/scard/sdiff/sinter/sunion/sismember/smembers/smove/srem

127.0.0.1:6379> sadd post:1:likes "joe" "bob" "mary"
(integer) 3
127.0.0.1:6379> scard post:1:likes
(integer) 3
127.0.0.1:6379> smembers post:1:likes
1) "joe"
2) "bob"
3) "mary"
127.0.0.1:6379> sadd post:2:likes "joe" "tim"
(integer) 2
127.0.0.1:6379> sdiff post:1:likes post:2:likes
1) "bob"
2) "mary"
127.0.0.1:6379> sinter post:1:likes post:2:likes
1) "joe"
127.0.0.1:6379>

sorted sets:

zadd,zcard,zcount,zincrby,zrange,zrank,zrem,zscore

127.0.0.1:6379> zadd highscores 120 "joe" 100 "bob" 150 "mary" 104 "tim"
(integer) 4
127.0.0.1:6379> zrange highscores 0 4
1) "bob"
2) "tim"
3) "joe"
4) "mary"
127.0.0.1:6379> zrange highscores 0 4 withscores
1) "bob"
2) "100"
3) "tim"
4) "104"
5) "joe"
6) "120"
7) "mary"
8) "150"
127.0.0.1:6379> zadd highscores 125 "joe"
(integer) 0
127.0.0.1:6379> zrange highscores 0 4 withscores
1) "bob"
2) "100"
3) "tim"
4) "104"
5) "joe"
6) "125"
7) "mary"
8) "150"

hash

maps between string fields and string values

hset/hmset/hget/hmget/hgetall/hdel/hexists/hincrby/hkeys/hvals

pub and sub

redis can be used as a message bus

127.0.0.1:6379> subscribe greetings
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "greetings"
3) (integer) 1
1) "message"
2) "greetings"
3) "hello redis"
1) "message"
2) "greetings"
3) "hello redis again"

psubscribe gree* // 則這種情況下會subscribe所有的gree
// 另外一個窗口
C:Redis>redis-cli.exe
127.0.0.1:6379> publish greetings "hello redis"
(integer) 1
127.0.0.1:6379> publish greetings "hello redis again"
(integer) 1
127.0.0.1:6379>

transction

原文地址:https://www.cnblogs.com/kidsitcn/p/7967716.html