redis【msb 2026金三银四redis上】
1、redis和hashmap在结构上有什么区别?
1、定位一个数据库一个数据结构
2、单机和分布式
3、支持的各种数据类型上面
2、redis有哪些数据类型?底层如何实现?
redis的所有基本数据类型都使用String
String---setuser:1 666
Hash---hsetuser:2 name lijin
list---lpushuser:3 arpush lrange rrangelpushuser:3 a b c d
Set----sadduser:4 asmembersuser:4
sismemberuser:4 a 判断某元素是否存在
ZSet--- -zadduser:5 90 lijin -zadduser:5 95 bobo -zadduser:5 100 msb
-zcarduser:5(几个成员)
-zscoreuser:5 lijin -"90" 获取分数
-zrankuser:5 lijin -0 集合排名
-zrangeuser:5 0 3 -zrerangeuser:5 0 3 反向排名
Bitmaps ---setbitdemobit 0 0 ---getbitdemobit 1bitcountdemobit 0 1(8位 字节) -4
GEO:地图geoaddcitys 116.28 39.55 beijinggeoaddcitys 117.12 39.08 tianjin
geoposcitys beijinggeodistcitys beijing tianjin 计算两地距离
georadiuscitys longitude latitude radius m 距离中心点范围之内的
3、Redis的持久化机制有哪些?RDB和AOF有什么区别?
高可用 恢复比mysql快 RDB:数据恢复速度快、适合大规模数据恢复、性能开销小 缺点:数据可能丢失、不适合高频率数据变更 aof持久化的精度更高,丢失精度的可能性更小。性能消耗大,aof文件会比较大 rewrite机制
4、redis的过期键删除策略有哪些?
setkey-ttl 66ex60 60秒后过期删除ttlkey-ttl 键的存活时间还有多少?
redis过期键删除策略: 1、定时删除 2、惰性删除 3、定期删除
搭建主从架构,从节点数据过期,由主节点进行删除
5、Redis的内存淘汰策略有哪些?
默认没有内存大小限制 maxmemory 超过内存大小后 触发内存淘汰策略
lru时间最久,lfu最不经常使用
6、Redis的底层数据结构有哪些?
7、Redis是单线程的吗?为什么这么快?
8、redis的事务能保证原子性吗? 不能
multi开启事务 set k1 1 、set k2 2 、get k1 。exec
弱事务、伪事务
