redis和mysql区别和联系
粗浅理解,redis 是用在mysql前面的,如果redis里面存了就用redis处理,redis没存就用mysql处理,mysql 处理之后会存到redis 中,但是隔一段时间又会被释放,它处理速度很快,但是不能用来大量长期存储数据。所以一般使用redis来处理高并发的数据,提高处理速度,但是所有数据都会在mysql中再存储,降低数据丢失的可能性。
linux 操作 redis 的指令
redis 的启动、关闭 判断其是否在运行中
#检查后台进程是否正在运行
ps -ef |grep redis
ps aux | grep redis
#检测6379端口是否在监听
netstat -lntp | grep 6379
#使用配置文件启动redis服务
./redis-server /etc/redis/redis.conf
#使用`redis-cli`客户端检测连接是否正常
./redis-cli -h 127.0.0.1 -p 6379 (登陆客户端)
#关闭redis:
redis-cli shutdown
redis 基础语法
redis 使用规范
zset 去重+排序
拒绝 bigkey
热点key 可以设置随机数分散key的使用量
key 有生存周期,超时redise会自动清除
超时时间建议打散,固定时间+随机时间
建议使用批量操作,提高效率(sql也是一样的,mapper batchsave)
一批量不建议太多,可以先循环500 批量插一次。
高频使用的才用redis 不高频的放在mysql中
redis 只能用作缓存,用在数据库前面
redis里面有就在redis查,没有的查mysql
高可靠要求的数据,更倾向于存在持久化存储的数据库中
缓存穿透:redis中不存在的key
缓存雪崩:redis 缓存实例处理量比mysql大很多,redis好多查不到的就会造成mysql 崩掉
- 大量热点数据同时过期(加随机数),
- redis 缓存实例发生故障,宕机了
避免雪崩:没有让 redis 存一个空对象,避免下次再打到数据库
乐高框架:行内常用的资源框架,使用jedis连接池
每次调用都复用一开始的50个链接,而不是每次重建,控制连接数,降低创建和回收浪费的资源
高并发 最大连接数配置
空闲连接的配置
设置最大的等待时长,不使用默认值
链接超时:连接等待时间
有效性探测推荐用false 避免高并发时增加一次ping
拓扑/槽变化:有几个节点在提供服务
设置key的标准,不符合标准的不进行redis访问,避免建立无效链接
RDB 每段时间会快照
AOF 通过打日志添加到内存
一次拿出所有key 用 hscan方法,循环批量删除,不要一次全都删除
回去看一下现在 redis 的配置