目录
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、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(流)
Redis基本数据类型不支持JSON,不过可以通过Redis 4.0中的模块系统进行支持。模块名: RedisJSON
模块地址: hts:/oss.rediss com/redisjson/
Redis 中的模块系统: Redis Modules
System,是Redis 4.0中的重大改进。可以通过外部模块对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
Redis默认支持16个数据库。
可以通过修改Redis 配置文件redis.conf中的databases一值进行变更。
如修改为20个:
Redis不会限制最大的数据库数量,但是会限制最小数据库数量为1个。
答案:看版本,目前的版本肯定可以了。
从2.6.12 版本开始,Redis 为SET命令增加了一系列选项:
●Ex seconds -设置键key的过期时间,单位:秒;
●PX milliseconds 一设置键key的过期时间,单位:毫秒;
●NX 一只有键key不存在的时候才会设置key的值;
●XX-只有键key存在的时候才会设置key的值;
SET命令加上这些选项,已经可以完全取代SETNX, SETEX, PSETEX的功能,所以在将来的版
本中,Redis 可能会不推荐使用,并且最终抛弃这几.个命令,
Redis最大可以存放2^32个键值,即如果没有设置最大内存,Redis 存储极限是服务器最大可用内存值。
单个List、set、sorted set 都可以放2^32个元素。
The maximum allowed key size is 512 MB.