redis小结

一、redis和memcached的区别
redis支持持久化和多种数据类型,不止key-value类型

二、redis默认端口号:6379

三、redis是单线程+多路IO复用

四、redis五大数据类型:string、list、set、hash、zset
存储的数据类型为bean的可以使用hash
存储排行榜可以使用zset,默认降序排列,每个value都有一个score

五、redis事务
1、watch、multi、exec、discard
watch 键:监控某个键,如果这个键在exec之前改变,则执行exec失败返回nil。执行exec或unwatch取消watch
mutli:组队
discard:取消组队
exec:执行。在执行时,失败的自动跳过执行下一个命令,一个失败不影响其他

2、传统型数据库使用悲观锁,读写时加锁,有其他线程也想读写先阻塞,等解锁后才能操作。redis使用乐观锁,获得一个版本号。若修改时版本号与原版本号不同则失败
3、redis事务三特性:单独的隔离操作、没有隔离级别的概念、不保证原子性

六、秒杀
redis+lua脚本

七、redis删除过期键方式
定期删除+惰性删除/
定期删除:每隔一段时间从库中随机取一定数量的键,判断键的过期时间,过期删除
惰性删除:当手动取值时,判断是否过期,过期删除并返回空

八、如何保证Redis中的数据都是热点数据(redis有哪些数据淘汰策略?)
redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略(回收策略)。redis 提供 6种数据淘汰策略(key的淘汰策略):
1、volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
2、volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
3、volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
4、allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
5、allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
6、no-enviction(驱逐):禁止驱逐数据

lru:least recently used
ttl:time to live

通过.conf配置文件可以进行修改,默认使用volatile-lru模式
可以使用命令object idletime 键 来查询某个键的空转时间

九、redis如何解决并发
setnx和getset方法

十、持久化两种方式
RDB内存快照(默认)和AOF日志文件

十一、redis除了做缓存还能做什么?
1、排行榜
2、使用incr计算点击量的计数器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值