Redis 非关系型数据库
基于内存的数据库,存储缓存用的数据。完成高并发,高速读写
Redis是一种key-value存储系统 value的值可以是多种数据结构类型
用作缓存数据理由:传统数据库,进行大量读取操作时效率很低。存储redis,就是将数据直接存储在内存上,提高开发效率。存储的数据为,数据量小,需要大量访问,而且主要进行读操作。(例如用户登陆的信息)
使用Redis的步骤:
- 添加redis依赖
- 配置redis连接池
- 导入RedisTemplate依赖 介入Spring帮助redis对java对象操作
1配置数据库连接池。(使用Spring配置JedisPoolConfig对象)
2为连接池配置工厂模型
3配置RedisTemplate(将java对象序列化后进行存储,将序列化取出反序列化Java对象)
(pojo类需要继承Serializable接口,完成序列化)
- 支持数据持久化
- 以多种数据类型存储
- 所有操作原子性,支持事务
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
Zset:String类型有序唯一集合 每个元素都关联一个double类型的score,根据score排序
应用:排行榜,带权重的消息队列
指令: Zadd key score value; Zrange key 0 10