redis 基本介绍

32 阅读2分钟

redis数据类型

string hash list set zset

数据类型基本操作
String字符串对整个字符串或字符串的一部分进行操作;对整数或浮点数进行自增或自减操作;
List列表对链表的两端进行push和pop操作,读取单个或多个元素;根据值查找或删除元素;
Hash散列包含方法有添加、获取、删除单个元素
Set集合字符串的集合,包含基础的方法有看是否存在添加、获取、删除;还包含计算交集、并集、差集等
ZSet有序集合字符串成员与浮点数分数之间的有序映射;元素的排列顺序由分数的大小决定;包含方法有添加、获取、删除单个元素以及根据分值范围或成员来获取元素

数据类型的应用场景

String

  1. 缓存 降低数据库读压力,把查询频次较高的数据以字符串的形式放在redis中作为磁盘缓存的缓冲;
  2. 计数 redis作为单线程(处理网络请求)模型,实现了原子操作,读写性能优秀可以作为计数器来使用;

List 列表

List 是压缩链表和双端链表的组合,双端链表为基本结构,压缩链表作为链表节点,可以在链表的两端进行操作;

  1. 消息队列 一端入队一端消费。可以阻塞(非阻塞必须定时器任务不停的获取消息,性能较差)获取列表中消息blpop;

Hash 散列

是一个String 类型的field字段和value的的映射表,常用来存储对象

  1. 对象存储 对于大key的字符串,字符串序列表成对象复杂的场景,通过key:字段->value的形式不需要整取整存的操作整个对象,只操作了对象的单个属性;

Set 集合

结合成员是不可重复的

  1. 标签 给用户添加标签属性,有同一标签属性的人放在一个集合中;
  2. 点赞操作

有序集合

与zset的区别 每个元素都会关联一个double类型的权重参数(score)使得集合中的元素能够按score进行有序排列。集合的元素是唯一的但是权重值是可以重复的。

  1. 排行榜 以集合元素权重值排序,设置value为名称,score为名称的权重,也可对socre动态修改实现排行榜;
  2. 优先队列 通过设置value的权重按序排列处理;

redis编码格式

redis数据结构 redissever redisdb redisobj

redis寻址

redis io模型

redis 集群模式