1、String(字符串)
1、简介:
字符串类型是Redis中最为基础的数据存储类型,每个键最大可存储数据512MB
是一个由字节组成的序列,在Redis中是二进制安全的。因此,可存储JPG图片或者序列化的对象
2、使用方法:
redis 127.0.0.1:6379> set key1 value1
OK
redis 127.0.0.1:6379> set key2 value2
OK
redis 127.0.0.1:6379> get key1
value1
redis 127.0.0.1:6379> get key2
value2
redis 127.0.0.1:6379> set onlineNum 0
OK
redis 127.0.0.1:6379> incr onlineNum
(integer) 1
redis 127.0.0.1:6379> incrby onlineNum 4
(integer) 5
redis 127.0.0.1:6379> decr onlineNum
(integer) 4
3、适用场景
很常见的场景用于统计网站访问数量,当前在线人数等。
2、Hash (散列Hash)
1、简介
hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象或者map。Redis中的散列可以看成具有String key和String value的map容器,可以将多个key-value存储到一个key中。每一个Hash可以存储4294967295(2的242-1次)个键值对。
2、使用方法
redis 127.0.0.1:6379> hset user name zhangsan
(integer) 1
redis 127.0.0.1:6379> hmset user user age 10 sex 30
(integer) 2
redis 127.0.0.1:6379> hget user age
"10"
redis 127.0.0.1:6379> hmget user name sex
1)"zhangsan"
2)"30"
redis 127.0.0.1:6379>
3、适用场景
存储、读取、修改用户属性(name,age,pwd等)
3、list (列表)
1、简介
列表是简单的字符串列表,按照插入顺序排序。双向链表,可从头部或尾部插入或取出数据。最大可存储4294967295(2的242-1次)个数据,每个列表可存储约40亿个元素。
2、使用方法
redis 127.0.0.1:6379> lpush users zhangsan
(integer) 1
redis 127.0.0.1:6379> lpush users lisi
(integer) 2
redis 127.0.0.1:6379> lpush users xiaofang
(integer) 3
redis 127.0.0.1:6379> lrange users 0 10
1) "xiaofang"
2) "lisi"
3) "zhangsan"
redis 127.0.0.1:6379> rpush users chacha
(integer) 4
redis 127.0.0.1:6379> lrange users 0 10
1) "xiaofang"
2) "lisi"
3) "zhangsan"
4) "chacha"
redis 127.0.0.1:6379> rpop users
"chacha"
redis 127.0.0.1:6379> rpop users
"zhangsan"
redis 127.0.0.1:6379> lpop users
xiaofang
redis 127.0.0.1:6379>
3、适用场景
1)最新消息排行榜(如朋友圈的时间线)。
2)消息队列。生产者可以用push操作将任务存在list中,消费者用pop操作将任务取出。
4、set (无序集合)
1、简介
列表是简单的字符串列表。数据插入无序且不可重复。最大可存储4294967295(2的242-1次)个数据,每个列表可存储约40亿个元素。
2、使用方法
redis 127.0.0.1:6379> sadd friends zhangsan
(integer) 1
redis 127.0.0.1:6379> sadd friends lisi
(integer) 1
redis 127.0.0.1:6379> sadd friends zhangsan
(integer) 0
redis 127.0.0.1:6379> sadd friends wupeng
(integer) 1
redis 127.0.0.1:6379> scard friends
(integer) 3
redis 127.0.0.1:6379> sismember friends wupeng
(integer) 1
redis 127.0.0.1:6379> sismember friends shasha
(integer) 0
redis 127.0.0.1:6379> srem friends shasha
(inetegr) 0
redis 127.0.0.1:6379> srem friends zhangsan
(integer) 1
redis 127.0.0.1:6379> scard friends
(integer) 2
redis 127.0.0.1:6379>
3、适用场景
利用不可重复性,实现求共同好友、访问某地址ip去重,当前在线用户人数去重等
5、zset (有序集合)
1、简介
redis的zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复
2、使用方法
redis 127.0.0.1:6379> zadd rank 97 zhangsan
(integer) 1
redis 127.0.0.1:6379> zadd rank 70 lisi
(integer) 1
redis 127.0.0.1:6379> zadd rank 78 wupeng
(integer) 1
redis 127.0.0.1:6379> zadd rank 75 zhangsan
(integer) 1
redis 127.0.0.1:6379> zcard rank
(integer) 3
redis 127.0.0.1:6379>
3、适用场景
排行榜、带权重的消息队列