redis入门到精通(二)

2015-02-02 20:09:36 · 作者: · 浏览: 44
.0.1:6379> get count

"19"

redis 127.0.0.1:6379> get count

(nil)

字符串操作

redis 127.0.0.1:6379> set name 'rolin'

OK

求字符串的长度

redis 127.0.0.1:6379> strlen name

(integer) 5

截取字符串,数值是角标

redis 127.0.0.1:6379> getrange name 0 3

"roli"

截取整个字符串的长度

redis 127.0.0.1:6379> getrange name 0 -1

"rolin"

map集合

redis 127.0.0.1:6379> hset 001 name rolin #001是大的key,name是小的key,rolin是小key的值

(integer) 1

redis 127.0.0.1:6379> hset 001 gender man#设置第二个小key

(integer) 1

redis 127.0.0.1:6379> hset 002 name legend

(integer) 1

redis 127.0.0.1:6379> hset 002 gender woman

(integer) 1

redis 127.0.0.1:6379> hget 001 name #得到大key 001下,小key name的值

"rolin"

redis 127.0.0.1:6379> hget 001 gender

"man"

redis 127.0.0.1:6379> hgetall 001 #得到大key下001的所有小key的值

1) "name"

2) "rolin"

3) "gender"

4) "man"

redis 127.0.0.1:6379> hgetall 002

1) "name"

2) "legend"

3) "gender"

4) "woman"

redis 127.0.0.1:6379> hdel 001 gender #删除小key以及对应的值

(integer) 1

redis 127.0.0.1:6379> hgetall 001

1) "name"

2) "rolin"

redis 127.0.0.1:6379> del 001 #删除大key,以及他下面的所有的小key以及对应的值

(integer) 1

redis 127.0.0.1:6379> hgetall 001

(empty list or set)

redis 127.0.0.1:6379> hkeys key

(empty list or set)

redis 127.0.0.1:6379> hkeys 001 #查看大key 001下所有的小key

(empty list or set)

redis 127.0.0.1:6379> hkeys 002

1) "name"

2) "gender"

redis 127.0.0.1:6379> hset 001 age 1

(integer) 1

redis 127.0.0.1:6379> hincrby 001 age

(error) ERR wrong number of arguments for 'hincrby' command

原子性增长,必须指定每次增长的数值的大小

redis 127.0.0.1:6379> hincrby 001 age 1

(integer) 2

redis 127.0.0.1:6379> hincrby 001 age 10

(integer) 12

?

其他的map的操作的方法,请参考传智播客的ppt

?

list集合

redis 127.0.0.1:6379> lpush mylist 0 1 2 3 4 5 6

(integer) 7

redis 127.0.0.1:6379> lrange mylist 0 -1

1) "6"

2) "5"

3) "4"

4) "3"

5) "2"

6) "1"

7) "0"

redis 127.0.0.1:6379> rpush mylist1 0 1 2 3 4 5 6

(integer) 14

redis 127.0.0.1:6379> lrange mylist1 0 -1

1) "0"

2) "1"

3) "2"

4) "3"

5) "4"

6) "5"

7) "6"

redis 127.0.0.1:6379> lpop mylist

"6"

redis 127.0.0.1:6379> lrange mylist 0 -1

1) "5"

2) "4"

3) "3"

4) "2"

5) "1"

6) "0"

redis 127.0.0.1:6379> rpop mylist

"0"

redis 127.0.0.1:6379> lrange mylist 0 -1

1) "5"

2) "4"

3) "3"

4) "2"

5) "1"

?

阻塞等待获取左边的值,如果有就拿到,如果没有就等待,100是等待的时间,单位是秒

redis 127.0.0.1:6379> blpop mylist3 100 #等待中.........

新开一个cli,

redis 127.0.0.1:6379> lpush mylist3 10 20 #push值进去

(integer) 2

上面等待的cli输出

1) "mylist3"

2) "20"

(15.56s) #一共等待时间

#从右侧弹栈

redis 127.0.0.1:6379> brpop mylist3 10

1) "mylist3"

2) "10"

redis 127.0.0.1:6379> lpush mylist 1 2 3 4 5 5 5 5 4

(integer) 9

redis 127.0.0.1:6379> lrange mylist

(error) ERR wrong number of arguments for 'lrange' command

redis 127.0.0.1:6379> lrange mylist 0 -1

1) "4"

2) "5"

3) "5"

4) "5"

5) "5"

6) "4"

7) "3"

8) "2"

9) "1"

从开始的位置开始删除前两次出现的值为5的元素

redis 127.0.0.1:6379> lrem mylist 2 5

(integer) 2

redis 127.0.0.1:6379> lrange mylist 0 -1

1) "4"

2) "5"

3) "5"

4) "4"

5) "3"

6) "2"

7) "1"

从左侧开始修改0角标的值为5

redis 127.0.0.1:6379> lset mylist 0 5

OK

显示指定范围的值

redis 127.0.0.1:6379> lrange mylist 0 -1

1) "5"

2) "5"

3) "5"

4) "4"

5) "3"

6) "2"

7) "1"

redis 127.0.0.1:6379> llen mylist

(integer) 7

redis 127.0.0.1:6379> ltrim mylist 3 -1

OK

redis 127.0.0.1:6379> lrange mylist 0 -1

1) "4"

2) "3"

3) "2"

4) "1"

redis 127.0.0.1:6379> ltrim mylist 0 4

OK

redis 127.0.0.1:6379> lrange mylist 0 -1

1) "4"

2) "3"

3) "2"

4) "1"

对list进行截取

redis 127.0.0.1:6379> ltrim mylist 0 3

OK

redis 127.0.0.1:6379> lrange mylist 0 -1

1) "4"

2) "3