栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java redis 面试题----持续补充

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java redis 面试题----持续补充

主文章(我总结的面试题的索引目录—进不去就说明我还没写完)
https://blog.csdn.net/grd_java/article/details/122357831

文章目录

1. redis必问2. 5种数据类型和应用场景3. 同类型产品优势4. 细节

1. redis必问

简述下redis

    作用于持久层的非关系型数据库,缓存型数据库,完全开源免费,遵守BSD协议,高性能key-value数据库支持数据持久化,重启后可再次加载使用。还支持list、set、zset、hash等数据结构存储。支持数据备份(master-slave模式的数据备份)

redis的优势

    性能极高:读的速度是110000次/s,写的次数是81000次/s丰富的数据类型:支持二进制案例的Strings,Lists,Hashes,Sets,OrderedSets数据类型操作原子性:Redis所有操作都是原子性(要么都成功,要不都失败)的,单个、多个操作都支持事务(原子性),通过MULTI和EXEC指令包起来特性多样:支持publish/subscribe,通知,key过期等特性

使用Redis的好处,体现在哪?

    速度快,数据在内存,数据结构使用散列表,此数据结构优势就是查找和操作的时间复杂度都是O(1)丰富的数据类型,很多同类型产品,只有String一个类型,而reids支持string,list,set,Zset,hash。尤其hash数据类型,非常契合面向对象编程语言支持事务,操作都是原子操作,对数据的修改要么全部执行,要么全部不执行(中间出错,全体回滚)特性多,可用于缓存,消息,设置key的过期时间(过期自动删除)
2. 5种数据类型和应用场景

redis有几种数据类型,分别是什么?

    redis的键值对中,value的值有5种数据类型,key统一都是string字符串类型5种数据类型分别是:string字符串、hash哈希、list列表、set集合、zset(sorted set)有序集合
    string类型:最基本类型,最大存储512M,如果里面存储的是数字值,那么可以通过incr key(key表示键)和decr key两个命令,对其进行增加和减少操作,可用于保存高热量数据值,比如点击量,用户只有点击,就调用incr key命令让里面的值加1.hash类型:就是一个hashMap,一般我们通过JSON字符串保存对象,而解析时,需要反序列化。使用hash类型,就省去了这个麻烦,它可以直接让我们访问到对象的特定某一条属性。注意,hash类型的键值对表现形式是field—value
    list类型:简单的字符串列表,按插入顺序排序,可以添加元素到头(左)或尾(右),最多2^32-1个元素(42949672295,一个列表超过40亿个),底层使用压缩列表和双向链表数据结构,压缩列表达到一定条件转换为双向链表。适用于字符串按先后顺序展示的场景,比如朋友圈点赞,按顺序显示谁先点赞set类型:不可重复的字符串列表,无序,和Java一样,通过hash表实现,添加删除查找,时间复杂度都是O(1),最多2^32-1个元素(42949672295,一个set超过40亿个),常用于屏蔽菜单,比如屏蔽的弹幕关键字,你又不会关注它的顺序zset类型:有序或者说会自动排序的set类型。他和java不一样,java的有序,是插入顺序,redis这个实实在在的实现了排序。它在set基础上,为每个元素,关联了double类型的分数score,redis通过此分数为集合中成员进行从小到大的排序。集合元素不可重复,但是分数score可以重复,如果插入重复元素,后插入的元素的score覆盖之前的元素的score,score可以指定。适用于排行榜。其它的高级数据结构:HyperLogLog、Geo、Pub/Sub、Redis Module、BloomFilter、RedisFilter、RedisSearch、Redis-ML。真的会再说,不会就不要提。
3. 同类型产品优势

Redis和Memcached相比有哪些优势?

    Memcached所有值都是简单字符串,redis作为它的替代,支持丰富数据类型redis速度比Memcached快很多Redis可以持久化数据

Memcache与Redis的区别

    存储方式不同:Memcache把数据全部放在内存,断点就会丢失,数据不能超过内存大小,Redis可以持久化数据到硬盘,保证数据持久性数据类型:Memcache对数据类型支持简单,Redis有复杂的数据类型底层模型不同:底层实现方式、与客户端间通信协议不一样。Redis自己构建VM机制,一般系统调用系统函数的话,会浪费一定时间去移动和请求,而Redis自己有VM机制,自己去请求。
4. 细节

redis是单进程单线程的?怎么体现的?

    Redis是单进程单线程的redis利用队列技术,将并发访问变成串行访问,消除了传统数据库串行控制的开销

redis一个string类型的值,能存储最大容量是多少

512M

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/750534.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号