1.概念
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
2.使用场景
1.数据高并发的读写
2.海量数据的读写
3.对扩展性要求高的数据
3.持久化方式
RDB(Redis Database):指定的时间间隔能对你的数据进行快照存储。
AOF(Append Only File):每一个收到的写命令都通过write函数追加到文件中。
4.实现分布式锁
Redis 分布式锁其实就是在系统里面占一个“坑”,其他程序也要占“坑”的时候,占用成功了就可以继续执行,失败了就只能放弃或稍后重试。
占坑一般使用 **setnx(set if not exists)**指令,只允许被一个程序占有,使用完调用 del 释放锁。
5.问题
KEYS命令的性能随着数据库数据的增多而越来越慢
KEYS命令会引起阻塞,连续的KEYS命令足以让 Redis 阻塞