Redis简介

Redis 非关系型数据库

基于内存的数据库,存储缓存用的数据。完成高并发,高速读写

Redis是一种key-value存储系统  value的值可以是多种数据结构类型

 

用作缓存数据理由:传统数据库,进行大量读取操作时效率很低。存储redis,就是将数据直接存储在内存上,提高开发效率。存储的数据为,数据量小,需要大量访问,而且主要进行读操作。(例如用户登陆的信息)

 

Redis七大用法

1.用作缓存,降低db压力,提高响应性能

2.用作会话管理,共享session存储,session过期

3.用作分布式锁

4.用作排行榜,利用Zset设置score分数,用来排行

5.用作点赞数,利用Set唯一性,保证点赞唯一。也可利用Zset存储Score时间戳,用来点赞排序

6.用作限流,利用Zset设置Score为时间戳,通过滑动窗口方式,先删除过期数据,再新增当前数据,最后查次数是否超过limit次数。通过lua脚本保证(删,增,查)原子性

7.用作消息队列,利用list的队列功能,LPUSH队列左添加,BRPOP阻塞式队列右获取

8.生成分布式唯一ID,基于INCR命令,实现某个key原子性+1

 

 

 

使用Redis的步骤:

  1. 添加redis依赖
  2. 配置redis连接池
  3. 导入RedisTemplate依赖 介入Spring帮助redisjava对象操作

1配置数据库连接池。(使用Spring配置JedisPoolConfig对象

2为连接池配置工厂模型

3配置RedisTemplate(将java对象序列化后进行存储,将序列化取出反序列化Java对象)

pojo类需要继承Serializable接口,完成序列化)

 

 

  1. 支持数据持久化
  2. 以多种数据类型存储
  3. 所有操作原子性,支持事务

 

Redis支持五种数据类型 : String   Hash   List   Set   Zset(sorted set)

 

String:最基本数据类型,二进制安全(可以包含任何数据),最大存储512MB

指令:set key value  //  get key

 

Hash: String类型以键值对的方式存储

应用:存储,读取,修改用户属性,只修改某一个属性值

指令: HMset key k1 v1 k2 v2 //  Hget key k1  Hget key k2

 

List: String类型简单的双向链表 (排列顺序类似一个栈)

应用:最新消息排行等功能(基于时间线),消息队列

指令:Lpush key “fuck” ;   lrange key  0  10

 

Set: String类型无序唯一集合,底层由Hash表实现,为集合提供了交集,并集,差集等操作

应用:共同好友,好友推荐,(利用唯一性)统计网站的所有ip

指令:Sadd  key  value;  Smembers  key

 

ZsetString类型有序唯一集合 每个元素都关联一个double类型的score,根据score排序

应用:排行榜,带权重的消息队列

指令: Zadd key score value;   Zrange key 0 10

posted @   六小扛把子  阅读(185)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示