测试开发-一天一个面试题之今天说说redis

276 阅读2分钟

写在前面

说到数据库,可能第一个想到mysql,其实除了关系型数据库,常见的还有非关系型数
据库,例如今天要说的redis,由于系统对性能要求的提高,开发对redis 的使用的
逐渐增多,所以了解非关系型数据库在日常测试中非常重要。

概念

简单而言非关系型数据库就是没有遵循关系代数模式的数据库,也常被人称为
nosql。最最常用的就是redis。

redis 数据类型

redis 数据类型有五种,包括:1.string 2.hash 3.list 4.set 5.zset  
各类型之间的区别
string
    类似Java中的map ,key valuses 结构
    读 get keyset key value
    删 del
hash
    一个 key 对应一个 value
    读hget key
    写 hset key value
    删 hdel
list
    简单的字符串列表,按照插入顺序排序
    读 lrange mylist 0 1
    写
        插入头部 lpush mylist "0"
        插入尾部 rpush mylist "0"
    删 lpop 
set
    字符串类型的无序集合
     读 smembers myset
    写 sadd myset "one"
    删 srem
zset
    与set 相同点: 字符串类型元素的集合,并且集合内的元素不能重复。
    zset 每个元素都会关联一个 double 类型的分数,redis 通过分数来为集合中的成员进行从小到大的排序。
    写  zadd 
    读  zrange
    删 zrem

reids 和mysql 区别

了解了redis 的基本数据类型和基本用法后,我们来说一下reids 和mysql 
区别,mysql是关系型数据库,redis是缓存数据库,redis一个运行在内存中,
速度快,key values数据结构不多,mysql一个是基于磁盘的关系型数据库,适宜复杂数据结构

缓存的使用场景

1.不需要实时更新但是又极其消耗数据库的数据。
2.需要实时更新,但是更新频率不高的数据。
3.在某个时刻访问量极大而且更新也很频繁的数据。但是这种数据使用的缓存
不能和普通缓存一样,这种缓存必须保证不丢失,否则会有大问题。

缓存的优势

高并发
    分布式缓存服务Redis提供超过10万的高QPS,轻松应对高并发访问
灵活扩展
    业务爆发时可以通过一键扩容,满足秒杀场景下的访问量增长
数据持久化
    自动将数据持久化到磁盘,保障数据安全可靠

写在最后

我是小巴哥,一个陪你成长,实实在在分享 测试干货职场经验的人,欢迎关注!!!