一、动力节点Redis的书
1. Redis有哪些特性?
2. Redis的IO模型是单线程还是多线程?
- Redis4.0版本以前是纯粹的单线程模型;从4.0版本开始,处理客户端请求的仍然是单线程模型,但像持久化、对AOF的rewrite、对失效连接的清理等由后台的线程进行处理。
- 从6.0开始才是真正意义上的多线程模型,对客户端请求的处理采用的才是多线程模型,但“多线程”仅用于接收、解析客户端的请求,然后将解析出的请求写入任务队列。而对任务(命令)的处理,仍然由单线程处理。这样做的好处:用户不需要考虑线程安全问题,不需要考虑事务控制。
3. Redis的内存移除策略有哪些?(P31)
4. Redis有哪些数据类型?(P3)
5. 典型应用场景?
String类型:缓存;计数器(如视频播放次数);共享Session(如用户登录session保存在Redis中避免分布式应用中重新登录的问题,token令牌实现接口幂等性);限速器(如用于接口防刷)。
5. Redis命令
1)Redis基本命令
2)key操作命令
keys、exists、del、rename、move、type、expire/pexpire、ttl/pttl、persist、scan
3)String型value操作命令(值最大存512M)
- SET key value [EX seconds | PX milliseconds] [NX | XX] (NX时等同于setnx)
- setex/psetex key 过期时间秒/毫秒 value
- setnx
- getset
- mset/msetnx key value [key value ...]
- mget key [key ...]
- append key value
- incr/decr key
- incrby/decrby key increment (increment为增/减的数值,不能是小数)
- incrbyfloat key increment (没有decrbyfloat命令)
- strlen key 返回key所存字符串的长度
- getrange key start end 返回key所存字符串的子字符串(start、end为起始偏移量)
- setrange key offset value
4)Hash型value操作命令
特点:所有命令都带h
- HSET key field value [field value ...]
例如:hset user:001 name Lucy sex male age 18 hobbies read
- HGET key field