跳至主要內容
redis面试题

redis面试题

todo: 添加小林coding的redis相关问题,缓存,穿透,雪崩等

Redis是什么

Redis(Remote Dictionary Server)是C语言开发的一个开源的(遵从BSD协议)高性能键值对(key-value)的内存数据库,可以用作数据库、缓存、消息中间件。它是一种NoSQL(not-only sql,泛指非关系型数据库)的数据库。

Reidis作为一个内存数据库:

  • 性能优秀,数据在内存中,读写速度非常快,支持并发10W QPS
  • 单进程单线程,是线程安全的,采用IO多路复用机制
  • 丰富的数据类型,支持字符串(strings)、散列(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)
  • 支持数据持久化,可以将内存中数据保存在磁盘中,重启时加载
  • 主从复制,哨兵,集群
  • 可以用作分布式锁
  • 可以作为消息中间件使用,支持发布订阅

Clay大约 12 分钟Redis
redis5.0.4集群搭建

redis5.0.4集群搭建

redis5.0新特性

Redis 5主要专注于几个重要功能。相比之下Redis 4非常非常专注于操作类型,Redis 5的变化大多是面向用户的。即在现有的基础上增加新的数据类型和操作类型。以下是此版本的主要功能:

  1. 新的Stream数据类型。[1]
  2. 新的Redis模块API:Timers and Cluster API。
  3. RDB现在存储LFU和LRU信息。
  4. 集群管理器从Ruby(redis-trib.rb)移植到C代码。可以在redis-cli中。查看redis-cli —cluster help了解更多信息。
  5. 新sorted set命令:ZPOPMIN / MAX和阻塞变量。
  6. 主动碎片整理V2。
  7. 增强HyperLogLog实现。
  8. 更好的内存统计报告。
  9. 许多带有子命令的命令现在都有一个HELP子命令。
  10. 客户经常连接和断开连接时性能更好。
  11. 错误修复和改进。
  12. Jemalloc升级到5.1版

Clay大约 5 分钟Redis
redis-dump方式导入导出数据

redis-dump方式导入导出数据

安装redis-dump工具

安装ruby(略),详见上一章节

gem install redis-dump -V

数据导出


Clay小于 1 分钟Redis
Redis 6.x 哨兵安装配置

Redis 6.x 哨兵安装配置

1 升级 gcc

centos7 默认的 gcc 默认是4.8.5,版本小于 5.3 无法编译,需要先安装gcc新版才能编译

yum -y install gcc-c++
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile 

Clay小于 1 分钟Redis
centos7安装redis-5.0.0主从

centos7安装redis-5.0.0主从

下载redis-5.0.0安装包

从官网下载安装包

cd /opt
wget http://download.redis.io/releases/redis-5.0.0.tar.gz
tar -xvf redis-5.0.0.tar.gz

Clay大约 3 分钟Redis
服务器端和客户端命令

服务器端和客户端命令

服务器端

服务器端的命令为redis-server 可以使⽤help查看帮助⽂档

redis-server --help

推荐使⽤服务的⽅式管理redis服务 启动


Clay小于 1 分钟Redis
hash类型

hash类型

hash⽤于存储对象 对象的结构为属性、值 值的类型为string

增加、修改

  • 设置单个属性
hset key field value

Clay小于 1 分钟Redis
键命令

键命令

  • 查找键 参数⽀持正则表达式
keys pattern
  • 判断键是否存在, 如果存在返回1,不存在返回0

Clay小于 1 分钟Redis
list类型

list类型

  • 列表的元素类型为string
  • 按照插⼊顺序排序

增加

  • 在左侧插⼊数据
lpush key value1 value2 ...

Clay大约 1 分钟Redis
2