Redis 入门练习

时间:2023-02-10 15:02:16

Redis提供了一个命令行入门练习的web:http://try.redis.io/

///////////////////////////////////////////////////////////////////////////////

1.设置/获取键值

set key value

get key

实例:

> set name "apple"
OK
> get name
"apple"

///////////////////////////////////////////////////////////////////////////////

2.数值自增(类似i++),此操作属于原子操作,支持多并发

incr key

> set num 15
OK
> incr num
(integer) 16

///////////////////////////////////////////////////////////////////////////////

3.删除键值

del key

> set phone "IPhone6s"
OK
> get phone
"IPhone6s"
> del phone
(integer) 1
> get phone
(nil)

///////////////////////////////////////////////////////////////////////////////

4.设置/查看键值存活时间(单位:秒)

设置:expire key time

查看:ttl key

> set name "winson"
OK
> expire name 30
(integer) 1
> ttl name
(integer) 20
> ttl name
(integer) 11
> ttl name
(integer) -2

返回-2,表示该键值不存在。

> set name "Tom"
OK
> ttl name
(integer) -1

如果设置了一个键值,ttl key会返回-1,表示该键值没有设置存活时间,它会一直存在

///////////////////////////////////////////////////////////////////////////////

 5.往list添加元素。

往列表尾部添加元素:rpush list_name value

往列表头部添加元素:lpush list_name value

(integer) -1
> rpush fruits "apple"
(integer) 1
> rpush fruits "banana"
(integer) 2
> rpush fruits "orange"
(integer) 3
> lpush fruits "pear"
(integer) 4

///////////////////////////////////////////////////////////////////////////////

6.获取list的长度

llen list_name

> llen fruits
(integer) 4

///////////////////////////////////////////////////////////////////////////////

7.获取list元素(单纯获取,list中不删除)

获取整个list中的元素(0表示从list的起始下标索引,-1表示list的结尾):lrange list_name 0 -1

> lrange fruits 0 -1
1) "pear"
2) "apple"
3) "banana"
4) "orange"

指定获取list某个范围的元素(1表示起始下标,3表示结束下标):lrange list_name 1 3

> lrange fruits 1 3
1) "apple"
2) "banana"
3) "orange"

///////////////////////////////////////////////////////////////////////////////

 8.获取list中的元素(获取后从list中删除)

获取位于list头部的元素:lpop list_name

> lpop fruits
"pear"
> llen fruits
(integer) 3

获取位于list尾部的元素:rpop list_name

> rpop fruits
"orange"
> llen fruits
(integer) 2

///////////////////////////////////////////////////////////////////////////////

 9.添加元素到sets(排序规则与添加顺序无关)

sadd set_name value

> sadd devices "watch"
(integer) 1
> sadd devices "phone"
(integer) 1
> sadd devices "computer"
(integer) 1
> sadd devices "pad"
(integer) 1

///////////////////////////////////////////////////////////////////////////////

 10.获取sets中的成员

smembers set_name

> smembers devices
1) "phone"
2) "pad"
3) "computer"
4) "watch"

///////////////////////////////////////////////////////////////////////////////

11.删除sets中的成员,删除成功返回1,删除失败返回0

srem set_name value

> srem devices "computer"
1
> smembers devices
1) "phone"
2) "pad"
3) "watch"
> srem devices "sb"
0

///////////////////////////////////////////////////////////////////////////////

12.判断某value是否为sets中的成员。(1为true,0为false)

sismember set_name value

> sismember devices "pad"
(integer) 1
> sismember devices "padpad"
(integer) 0

///////////////////////////////////////////////////////////////////////////////

13.获取两个或多个sets的并集

sunion set_name1 set_name2

> sadd colors "red"
(integer) 1
> sadd colors "green"
(integer) 1
> sunion devices colors
1) "green"
2) "phone"
3) "watch"
4) "pad"
5) "red"

///////////////////////////////////////////////////////////////////////////////

 14.添加成员到有序的set集合,默认根据store进行升序排列

zadd set_name store value

> zadd days 45 "Monday"
(integer) 1
> zadd days 65 "Tuesday"
(integer) 1
> zadd days 55 "Wednesday"
(integer) 1

///////////////////////////////////////////////////////////////////////////////

 15.获取有序的set集合(参考【7】)

zrange set_name start_index end_index

> zrange days 0 -1
1) "Monday"
2) "Wednesday"
3) "Tuesday"

///////////////////////////////////////////////////////////////////////////////

16.添加hashes集合

hset hashes_name key value

> hset car name "BMW"
(integer) 1
> hset car price "46W RMB"
(integer) 1
> hset car Driver "winson"
(integer) 1

///////////////////////////////////////////////////////////////////////////////

17.获取hashes中的成员

获取所有的成员:hgetall hashes_name

> hgetall car
1) "name"
2) "BMW"
3) "price"
4) "46W RMB"
5) "Driver"
6) "winson"

获取指定的成员:hget hashes_name key

> hget car price
"46W RMB"

///////////////////////////////////////////////////////////////////////////////

18.hashes集合中的数值自增

hincrby hashes_name key count

> hset NBA store 54
(integer) 1
> hincrby NBA store 3
(integer) 57

///////////////////////////////////////////////////////////////////////////////