Redis常见面试题(二)

目录

1、Redis和Memcached有什么区别?

2、Redis支持哪些数据类型?

3、Redis支持JSON数据类型吗?为什么?

4、Redis模块系统有什么用?

5、Redis支持对象映射模型吗?

6、Redis默认支持多少个数据库?怎么修改?

7、Redis SET命令可以代替SETNX吗?

8、Redis单个实例最多能存放多少个键?

9、Redis单个Set, List最多能存放多少个元素?

10、Redis最大key大小?


1、Redis和Memcached有什么区别?

  1. Redis 只使用单核,而 Memcached 可以使用多核
  2. MemCached 数据结构单一,仅用来缓存数据,而 Redis 支持多种数据类型
  3. MemCached 不支持数据持久化,重启后数据会消失。Redis 支持数据持久化
  4. Redis 提供主从同步机制和 cluster 集群部署能力,能够提供高可用服务。Memcached 没有提供原生的集群模式,需要依靠客户端实现往集群中分片写入数据
  5. Redis 的速度比 Memcached 快很
  6. Redis 使用单线程的多路 IO 复用模型,Memcached使用多线程的非阻塞 IO 模型

2、Redis支持哪些数据类型?

基本数据类型

1、String:最常用的一种数据类型,String类型的值可以是字符串、数字或者二进制,但值最大不能超过512MB。

2、Hash:Hash 是一个键值对集合。

3、Set:无序去重的集合。Set 提供了交集、并集等方法,对于实现共同好友、共同关注等功能特别方便。

4、List:有序可重复的集合,底层是依赖双向链表实现的。

5、SortedSet:有序Set。内部维护了一个score的参数来实现。适用于排行榜和带权重的消息队列等场景。

特殊的数据类型

1、Bitmap:位图,可以认为是一个以位为单位数组,数组中的每个单元只能存0或者1,数组的下标在 Bitmap 中叫做偏移量。Bitmap的长度与集合中元素个数无关,而是与基数的上限有关。

2、Hyperloglog。HyperLogLog 是用来做基数统计的算法,其优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且是很小的。典型的使用场景是统计独立访客。

3、Geospatial :主要用于存储地理位置信息,并对存储的信息进行操作,适用场景如定位、附近的人等。

4、Streams(流)

3、Redis支持JSON数据类型吗?为什么?

Redis基本数据类型不支持JSON,不过可以通过Redis 4.0中的模块系统进行支持。模块名: RedisJSON

模块地址: hts:/oss.rediss com/redisjson/

Redis常见面试题(二)_第1张图片

4、Redis模块系统有什么用?

Redis 中的模块系统: Redis Modules

System,是Redis 4.0中的重大改进。可以通过外部模块对Redis功能进行动态扩展,如果官方

不支持的功能,我们可以开发一个模块进行支持。

5、Redis支持对象映射模型吗?

Redis重磅官宣: Redis OM发布,即: Object Mapping,支持对象映射,像操作对象一样操作Redis! !

当然,Redis OM的横空出世不仅仅是对象映射,它更多的是提供一个高级的抽象类库,目标就是让开发人员更简单车方便的使用Redis数据。

Redis OM支持的第一个抽象就是: 对象映射,支持基于对象的Redis 数据持久化、流式查询操作。

目前只支持4种开发语言:

●Redis OM for Spring (Java)

●Redis OM for .NET

●Redis OM for Node.js

●Redis OM for Python

6、Redis默认支持多少个数据库?怎么修改?

Redis默认支持16个数据库。

可以通过修改Redis 配置文件redis.conf中的databases一值进行变更。

如修改为20个:

Redis不会限制最大的数据库数量,但是会限制最小数据库数量为1个。

7、Redis SET命令可以代替SETNX吗?

答案:看版本,目前的版本肯定可以了。

从2.6.12 版本开始,Redis 为SET命令增加了一系列选项:

Ex   seconds -设置键key的过期时间,单位:秒;

PX    milliseconds 一设置键key的过期时间,单位:毫秒;

NX   一只有键key不存在的时候才会设置key的值;

XX-只有键key存在的时候才会设置key的值;

SET命令加上这些选项,已经可以完全取代SETNX, SETEX, PSETEX的功能,所以在将来的版

本中,Redis 可能会不推荐使用,并且最终抛弃这几.个命令,

8、Redis单个实例最多能存放多少个键?

Redis最大可以存放2^32个键值,即如果没有设置最大内存,Redis 存储极限是服务器最大可用内存值。

9、Redis单个Set, List最多能存放多少个元素?

单个List、set、sorted set 都可以放2^32个元素。

10、Redis最大key大小?

The maximum allowed key size is 512 MB.

你可能感兴趣的:(redis,redis,memcached,数据库)