面试总结-链接

redis

https://blog.csdn.net/CCUTwangning/article/details/70153589 天下无难试之Redis面试题刁难大全 https://blog.csdn.net/g0_hw/article/details/79360073

https://www.cnblogs.com/Survivalist/p/8119891.html

  1. 使用redis有哪些好处?

(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)

(2) 支持丰富数据类型,支持string,list,set,sorted set,hash

(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行

(4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

  1. redis相比memcached有哪些优势?

(1) memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型

(2) redis的速度比memcached快很多

(3) redis可以持久化其数据

  1. redis常见性能问题和解决方案:

(1) Master最好不要做任何持久化工作,如RDB内存快照和AOF日志文件

(2) 如果数据比较重要,某个Slave开启AOF备份数据,策略设置为每秒同步一次

(3) 为了主从复制的速度和连接的稳定性,Master和Slave最好在同一个局域网内

(4) 尽量避免在压力很大的主库上增加从库

(5) 主从复制不要用图状结构,用单向链表结构更为稳定,即:Master <- Slave1 <- Slave2 <- Slave3…

这样的结构方便解决单点故障问题,实现Slave对Master的替换。如果Master挂了,可以立刻启用Slave1做Master,其他不变。

  1. redis事务和mysql事务的区别 (1) 事务命令:开启事务的命令不同。 redis:MULTI:标记事务的开始;EXEC:执行事务的commands队列;DISCARD:结束事务,并清除commands队列; mysql:BEGIN:显式地开启一个事务; COMMIT:提交事务,将对数据库进行的所有修改变成为永久性的; ROLLBACK:结束用户的事务,并撤销正在进行的所有未提交的修改;

(2) 默认状态: Redis:Redis默认不会开启事务,即command会立即执行,而不会排队。并不支持Rollback MySQL:MySQL会默认开启一个事务,且缺省设置是自动提交,即,每成功执行一个SQL,一个事务就会马上 COMMIT。所以不能Rollback。 https://blog.csdn.net/qq_32331073/article/details/79926307

  1. Memcache与Redis的区别都有哪些 1)、存储方式 Memecache把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。Redis有部份存在硬盘上,这样能保证数据的持久性。

2)、数据支持类型 Memcache对数据类型支持相对简单。Redis有复杂的数据类型,Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

3)、使用底层模型不同 它们之间底层实现方式以及与客户端之间通信的应用协议不一样。Redis直接自己构建了VM 机制,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。

4)value大小 redis最大可以达到1GB,而memcache只有1MB

5) Redis支持数据的备份,即master-slave模式的数据备份。

6)、查询速度,redis速度比memchached快

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Ubuntu 16.04上的三节点集群上部署CockroachDB

CockroachDB是一个开源的分布式SQL数据库,提供一致性、可伸缩性和生存性。

20020
来自专栏Laoqi's Linux运维专列

KVM虚拟主机管理篇

64230
来自专栏圣杰的专栏

RabbitMQ知多少

1.引言 RabbitMQ——Rabbit Message Queue的简写,但不能仅仅理解其为消息队列,消息代理更合适。RabbitMQ 是一个由 Erlan...

28470
来自专栏JetpropelledSnake

SQL学习之SqlMap SQL注入

49050
来自专栏草根专栏

.NET Core TDD 前传: 编写易于测试的代码 -- 全局状态

全局状态, 也可以叫做应用程序状态, 它是一组变量, 这些变量维护着应用程序的高级状态.

10330
来自专栏烂笔头

SSDB安装配置记录

目录[-] SSDB的性能很突出,与Redis基本相当了,Redis是内存型,容量问题是弱项,并且内存成本太高,SSDB针对这个弱点,使用硬盘存储,使用G...

46880
来自专栏腾讯云数据库团队的专栏

Elasticsearch源码分析-写入解析

Elasticsearch(ES)是一个基于Lucene的近实时分布式存储及搜索分析系统,其应用场景广泛,可应用于日志分析、全文检索、结构化数据分...

99050
来自专栏乐沙弥的世界

使用mysqlbinlog提取二进制日志

    MySQL binlog日志记录了MySQL数据库从启用日志以来所有对当前数据库的变更。binlog日志属于二进制文件,我们可以从binlog提取出来生...

23220
来自专栏三丰SanFeng

redis配置详解(中英文)

V2.8.21: (中英字幕同步) # Redis configuration file example #* Redis 配置文件例子 # Note on...

30980
来自专栏Java大联盟

Java面试手册:JDBC

12910

扫码关注云+社区

领取腾讯云代金券