概述:
Redis是一个开源的key-value类型的内存存储数据库,所有数据库都加载在内存中进行操作,定期通过异步操作把数据库数据保存到硬盘上,因为所有数据库都加载在内存中进行操作,所以Redis的性能比较优。
一、Redis的特点
读写速度快
可做持久化(由于所有数据保持在内存中在内存中进行操作,所以对数据的更新将异步保存到磁盘上)
自动操作(Redis对不同数据类型的操作是自动的,因此设置或增加key值,从一个集合中增加或删除一个元素都能安全的操作。)
支持多语言(Ruby,Python, Twisted Python, PHP, Erlang, Tcl, Perl, Lua, Java, Scala, Clojure等。)
二、Redis的数据类型
String(字符串)(一个 key 对应一个 value)
Hash(哈希)(Redis hash 是一个键值(key=>value)对集合)
List(列表)(是一个简单的字符串列表)
Set(集合)(是string类型的无序集合)
三、Redis的应用场景
会话缓存
页面缓存
消息队列
四、Redis的集群方案
通过keepalive的VIP实现主从复制
官方的Redis cluster集群部署
https://www.yuque.com/docs/share/4fb6f41c-c051-4e71-9ccc-d915b83c10af?#
五、常见面试问题
Redis的默认有多少个库,之间如何切换?
默认有16个库,可以通过配置文件来设置个数,登录Redis默认是第一个库0,使用select 命令来切换每个库,如select 1 切换到第二个库
怎么设置Redis连接密码?
在配置文件中找到requirepass 设置密码,登录Redis需要使用auth验证
连接Redis的命令是什么?
redis-cli -h host -p port -a password
如何查看Redis当前的连接数?
登录Redis使用info Client查看连接数,info可以查看详细信息
Redis的优缺点是什么?
优点是读写速度快,支持服务端锁定,缺点是单线程
Redis主要消耗什么物理资源?
主要消耗内存,因为Redis所有操作都是在内存中进行的
Redis如何做内存优化?
尽可能使用散列表(hashes)
如何查看一个key是否存在?
exists key