Redis的五种常用数据类型:
字符串,哈希,列表,集合,无序集合
redis设置密码auth
Redis持久化方式:
RDB:对内存中数据库状态进行快照
RDB默认开启
AOF:把每条命令都写入到文件,类似mysql的binlog日志.
1.AOF默认关闭,开启方法,修改配置文件redis.conf:appendonly yes
Redis常用命令
排序:排名
Redis Zadd 命令用于将一个或多个成员元素及其分数值加入到有序集当中。
Redis::zadd("num","1","aa");
Redis Zrevrange 命令返回有序集中,指定区间内的成员。其中成员的位置按分数值递减(倒叙从大到小)来排列。
$reg=Redis::zrange("num","0","10");
Redis Zrange命令返回有序集中,指定区间内的成员。其中成员的位置按分数值递减(正叙从小到大)来排列。
$res=Redis::zrevrange("num","0","10");
redis可能会出现的问题
缓存击穿:
大量请求访问redis的一个热点数据key值. redis防不住。直接全部请求到mysq1了.导致redis失效
解决方案:热点数据永不过期,互斥锁
缓存穿透:
查询redis时,查询到一个不存在的数据
解决方案:缓存空值,布隆过滤器
缓存雪崩:
在一个时间段内,缓存集中的数据过期失效
解决方案:数据预热,设置不同的过期时间,热点数据永不过期
脑裂问题:
当Redis主从集群环境出现两个主节点为客户端提供服务,这时客户端请求命令可能会发生数据丢失的情况。
Redis内存满了怎么办
1.云服务器升级系统内存服务
2.硬件服务器,增加内存条,或者增加服务器
3.调用redis删除机制(过期删除.惰性删除.定期删除) , 目的是删除目前redis中已经存在的数据,
给需要的数据腾出空间.
如何保证redis数据不丢失
分布式锁 set nx
redis备份与恢复
redis跳跃表机制(理论)