最开始使用memcache做缓存数据库,但是它不能进行数据持久化,而是放在内存中
使用redis做缓存数据库,可以把数据存在内存中,加快我们读取数据的速度,同时,它可以定时去同步数据到磁盘,进行内存数据持久化。它还有个重大优势:缓存数据库之间可以自动同步
功能强大,但是比较复杂,所以在使用过程中也存在一定的问题。
性能测试人员需要了解redis的使用,原理,存在的问题,发现问题,如何给出调优建议。
典型的有五种
docker run -itd --name you_redis_name -p 6379:6379 redis redis-server --appendonly yes
RemoteDictionaryServer(Redis)
https://gitee.com/qishibo/AnotherRedisDesktopManager/releases
redis连接
在客户端模式下执行
config get *
config set key value
set strkey value
get strkey
字符串
lpush listkey zhongxin
lpush listkey 测试游记
lrange listkey 0 1
列表
hset hxkey filed1 hashvalue1 filed2 hashvalue
hget hxkey filed2
哈希
sadd zsetkey 1 redis
smembers zsetkey
集合
redis-benchmark -n 10000 -q
命令
key查不到(例如 id为负数),去存储层数据库中获取,失去了缓存意义
解决办法:程序层做逻辑检查
redis缓存数据库中大量的key在同一时间失效,请求这些key获取不到数据,从而去获取更底层的DB数据库
解决办法:设置key失效时间随机
持续长时间大并发请求某一个热点key,在key失效的瞬间,就突破了缓存