一、Redis简介
概念:Redis(REmote DIctionary Server)是用C语言开发的一个开源的高性能键值对(key-value)数据库。
特性:
1.数据间没有必然关联关系。
2.内部采用单线程机制工作。
3.高性能,官方提供测试数据,50个并发执行100000个请求读的速度是110000次/s,写的速度是81000次/s。
4.多数据类型支持
字符串型 String
列表类型 list(日志消息队列)
散列类型 hash (抢购)
集合类型 set(黑白名单)
有序集合类型 sorted_set(微信消息、排行榜)
5.持久化支持,可进行数据灾难恢复。
二、Redis应用
1.为热点数据加速,例如:热点商品、热点咨询、推广类等高访问量信息等。
2.任务队列、例如:秒杀、抢购、购票排队等。
3.即时信息查询,例如:排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信息等。
4.时效性信息控制,例如:验证码、投票等,可通过设置有效期来控制。
5.分布式数据共享,例如:分布式集群架构中的session分离。
6.消息队列。
7.分布式锁。
三、Redis下载安装
自行百度。
参考博客: https://www.cnblogs.com/jylee/p/9844965.html
四、基本操作
1.String类型
(1)SET key value 设置指定 key 的值
(2) GET key 获取指定 key 的值。
(3) GETRANGE key start end 返回字符串中的子字符
(4)GETSET key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
(5) MSET key value [key value ...] 同时设置一个或多个key-value
(6) MGET key1 [key2..] 获取所有(一个或多个)给定 key 的值。
(7) STRLEN key 返回 key 所储存的字符串值的长度。
(8) MGET key value [key value ...] 同时获取一个或多个value
(9) INCR key 将 key 中储存的数字值增一。
(10)INCRBY key increment 将 key 所储存的值加上给定的增量值(increment) 。
(11) APPEND key value 如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。
(12) DECR key 将 key 中储存的数字值减一。
(13) SETEX key seconds value 设置key的有效期
- Hash
Redis hash 是一个String类型的field和value的映射表,hash适合存对象。
Redis 中每个hash可以存储40多亿个键值对。
(1) HSET key field value 将哈希表 key 中的字段 field 的值设为 value 。
(2) HGET key field 获取存储在哈希表中指定字段的值。
此处剩余命令请参考菜鸟教程:菜鸟教程:https://www.runoob.com/redis/redis-strings.html
五、Jedis
java 程序操作redis服务的工具:
Jedis
SpringData Redis
Lettuce
六、持久化
1.什么是持久化
利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化。
2.为什么要持久化?
防止数据的意外丢失,确保数据安全性。例如:意外断电,数据丢失。
3.持久化过程保存什么?
RDB:数据(将当前数据状态进行保存,快照形式,存储数据结果,存储格式简单,关注点在数据)。
AOF:保存操作过程(将数据的操作过程保存,日志形式,存储操作过程,存储格式复杂,关注点在数据的操作过程)
4.RDB启动方式
redis操作者随时保存数据。
命令:save
作用:手动执行一次保存操作