一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情。
Redis是什么?
redis是一个key-value存储系统。它支持存储的数据结构很多种,五大基本数据结构:String(字符串)、list(链表)、set(集合)、zset(有序集合)、hash(哈希类型)。还有三种特殊的数据结构:bitmap(位图)、hyperloglgo(统计)、GEO(地理)、STream。Stream是Redis5.0版本新增加的数据结构。主要用于消息队列,Redis 本身是有一个 Redis 发布订阅 (pub/sub) 来实现消息队列的功能,但它有个缺点就是消息无法持久化,如果出现网络断开、Redis 宕机等,消息就会被丢弃。简单来说发布订阅 (pub/sub) 可以分发消息,但无法记录历史消息。而 Redis Stream 提供了消息的持久化和主备复制功能,可以让任何客户端访问任何时刻的数据,并且能记住每一个客户端的访问位置,还能保证消息不丢失。它算是redis自己消息功能的补充。 但是,一般主流MQ都固定了(Kafka/RabbitMQ/RocketMQ)等等。主要是八大数据结构细说。后续会讲!
网站介绍
官网命令大全网站 、 中文的redis介绍、 redis安装步骤
redis五大数据结构类型运用
命令不区分大小写,而Key区分大小写的。
当前文章不会提供代码命令截图,读者可以按照博主写的命令 手动运行,效果更不错。
String
常用的命令:
set key value //设置key、value
get key //根据key获取value
MSET key value [key value ....] //同时设置/获取多个键值
MGET key [key ....] //同时设置/获取多个键值
INCR key //递增数字
INCRBY key increment //增加指定的整数
DECR key //递减数值
DECRBY key decrement //减少指定的整数
STRLEN key //获取字符串长度
setnx key value
set key value [EX seconds] [PX milliseconds] [NX|XX] //分布式锁(这一块后面的文章会写,稍后!)
//EX:key在多少秒之后过期
//PX:key在多少毫秒之后过期
//NX:当key不存在的时候,才会创建,效果等同于setnx
//XX:当key存在的时候,覆盖Key
应用场景
比如①文章无限点赞某个视频或者商品,点一下加一次。②阅读数只要点击了rest地址,直接可以使用incr key 命令增加一个数字1,完成记录数字。
目前INCR方法增只适合并发较小的场景。高并发大的场景是另一种方案实现的,
INCR item:1