Redis学习笔记(一)五种数据类型

1、字符串(String)

基本操作:SET(设置)、GET(获取)、DEL(删除)其他操作传送门

root@localhost:~# redis-cli
127.0.0.1:6379> set msg hello
OK
127.0.0.1:6379> get msg
"hello"
127.0.0.1:6379> del msg
(integer) 1
127.0.0.1:6379> get msg
(nil)

2、列表(List)

基本操作:LPUSH/RPUSH(将元素推入列表左端/右端)、LPOP/RPOP(从列表左/右弹出元素)、LINDEX(获取指定位置上的元素)、LRANGE(获取指定范围内的元素)、LTRIM key_name index1 index2(修剪,只保留范围内元素,包括起止元素)其他操作传送门

root@localhost:~# redis-cli
127.0.0.1:6379> rpush list 5
(integer) 1
127.0.0.1:6379> rpush list 6
(integer) 2
127.0.0.1:6379> lpush list 4
(integer) 3
127.0.0.1:6379> lrange list 0 -1 #可以用来获取当前列表中所有元素
1) "4"
2) "5"
3) "6"
127.0.0.1:6379> lpop list
"4"
127.0.0.1:6379> rpop list
"6"
127.0.0.1:6379> lindex list 0
"5"
127.0.0.1:6379> lindex list 1
(nil)
127.0.0.1:6379> lrange list 0 -1
1) "5"
127.0.0.1:6379> get list    
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> del list
(integer) 1
127.0.0.1:6379> lrange list 0 -1
(empty list or set)
127.0.0.1:6379> rpush list 0 1 2 3
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "0"
2) "1"
3) "2"
4) "3"
127.0.0.1:6379> ltrim list 1 -1
OK
127.0.0.1:6379> lrange list 0 -1
1) "1"
2) "2"
3) "3"

3、集合(Set)

集合与列表的不同之处在于,集合储存的元素是无序且各不相同的。

基本操作:SADD(添加元素)、SREM(移除元素)、SISMEMBER(给定元素是否在集合中)、SMEMBERS(返回集合中所有元素)、SCARD(获取集合内元素数量)、SRANDMEMBER key_name [count](随机返回1[count]个元素,count为正数时,元素不会重复,为负数时,元素可能重复多次)、SPOP(随机移除并返回某个元素)、SMOVE key1 key2 item(如果key1中存在item,则将item加入key2并移除key1中的item)其他操作传送门

root@localhost:~# redis-cli
127.0.0.1:6379> sadd set 7
(integer) 1 #返回添加元素中原本set中没有的元素数量
127.0.0.1:6379> sadd set 7
(integer) 0
127.0.0.1:6379> sadd set 8 9
(integer) 2
127.0.0.1:6379> smembers set
1) "7"
2) "8"
3) "9"
127.0.0.1:6379> sismember set 1
(integer) 0
127.0.0.1:6379> sismember set 7
(integer) 1
127.0.0.1:6379> srem set 7
(integer) 1
127.0.0.1:6379> smembers set 
1) "8"
2) "9"
127.0.0.1:6379> srem set 1
(integer) 0
127.0.0.1:6379> scard set
(integer) 2
127.0.0.1:6379> srandmember set 
"8"
127.0.0.1:6379> srandmember set -5
1) "9"
2) "8"
3) "9"
4) "9"
5) "8"
127.0.0.1:6379> srandmember set 5
1) "8"
2) "9"
127.0.0.1:6379> srandmember set 0
(empty list or set)
127.0.0.1:6379> spop set
"9"
127.0.0.1:6379> smembers set
1) "8"
127.0.0.1:6379> smove set set2 9
(integer) 0 #SMOVE成功返回1,失败返回0
127.0.0.1:6379> smove set set2 8
(integer) 1
127.0.0.1:6379> smembers set2
1) "8"
127.0.0.1:6379> smembers set
(empty list or set)

4、散列(hash)

散列储存多个键值对之间的映射,显然键需要各不相同。

Redis不支持嵌套,故散列嵌套只能间接实现。

基本操作:HSET/HMSET(关联给定的键值对/多个键值对)、HGET/HMGET(获取给某个/多个定键的值)、HGETALL(获取所有键值对)、HDELL(删除给定键的键值对)、HLEN(获得键值对数量)其他操作传送门

 

root@localhost:~# redis-cli
127.0.0.1:6379> del hash
(integer) 1
127.0.0.1:6379> hset hash a 1
(integer) 1
127.0.0.1:6379> hmset hash b 2 c 3
OK
127.0.0.1:6379> hget hash a
"1"
127.0.0.1:6379> hget hash e
(nil)
127.0.0.1:6379> hmget hash a e
1) "1"
2) (nil)
127.0.0.1:6379> hgetall hash
1) "a"
2) "1"
3) "b"
4) "2"
5) "c"
6) "3"
127.0.0.1:6379> hdel hash a b
(integer) 2
127.0.0.1:6379> hgetall hash
1) "c"
2) "3"
127.0.0.1:6379> hdel hash a
(integer) 0
127.0.0.1:6379> hlen hash
(integer) 1

 

5、有序集合(Sorted Set)

有序集合储存键值对,其中,键必须各不相同,称为成员(member),值须为浮点数,称为分数(score)

基本操作:ZADD(添加带分数的成员或更新成员的分数)、ZRANGE/ZREVRANGE [WITHSCORES](根据给定的位置,获取按分数升序/降序排列的有序集合中的成员[分数])、ZRANGEBYSCORES/ZREVRANGEBYSCORES  [WITHSCORES](获取有序集合在给定分数范围内的成员[分数])、ZREM(移除成员)其他操作传送门

root@localhost:~# redis-cli
127.0.0.1:6379> zadd zset 110 i1
(integer) 1
127.0.0.1:6379> zadd zset 10 i2 200 i3
(integer) 2
127.0.0.1:6379> zrange zset 0 -1
1) "i2"
2) "i1"
3) "i3"
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "i2"
2) "10"
3) "i1"
4) "110"
5) "i3"
6) "200"
127.0.0.1:6379> zrangebyscore zset 0 150 withscores
1) "i2"
2) "10"
3) "i1"
4) "110"
127.0.0.1:6379> zrem zset i1
(integer) 1
127.0.0.1:6379> zrangebyscore zset 0 150 withscores
1) "i2"
2) "10"

 

posted @ 2017-12-12 15:07  DanceInTheRain  阅读(288)  评论(0编辑  收藏  举报