Redis的五种基本数据类型及使用场景介绍

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、适用场景

排行榜、带权重的消息队列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值