Nosql

如何根据性能选择内存NoSQL数据库?

导读:NoSQL数据库系统发展迅速,常见的有Redis,Tarantool ,CouchBase等等。那么对于用户来说,该如何选择呢?接下来我们将会结合性能测试工具Yahoo! Cloud Serving Benchmark(YCSB)来对几款常用内存NoSQL进行性能对比,以找出最优方案。

本文主要内容是测试了不同NoSQL数据库在测试工具YCSB中的表现。我们选取了3款流行的内存(in-memory)数据库管理系统:Redis,Tarantool 以及 CouchBase,还有缓存系统Memchached。Memchached虽然不属于数据库管理系统但常作为快速存储系统使用。…

                

面试中关于Redis的问题看这篇就够了

就我个人而言,我觉得Redis的基本使用是我们每个Java程序员都应该会的。另外,如果需要面试的话,一些关于Redis的理论知识也需要好好的学习一下。学完Redis之后,对照着下面8点看看自己还有那些不足的地方,同时,下面7点也是面试中经常会问到的。另外,《Redis实战》、《Redis设计与实现》是我比较推荐的两本学习Redis的书籍。

  1. Redis的两种持久化操作以及如何保障数据安全(快照和AOF)
  2. 如何防止数据出错(Redis事务)
  3. 如何使用流水线来提升性能
  4. Redis主从复制
  5. Redis集群的搭建
  6. Redis的几种淘汰策略
  7. Redis集群宕机,数据迁移问题
  8. Redis缓存使用有很多,怎么解决缓存雪崩和缓存穿透?

下面就一些问题给大家详细说一下。

什么是Redis?

Redis 是一个使用 C 语言写成的,开源的 key-value 数据库。。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。目前,Vmware在资助着redis项目的开发和维护。

Redis与Memcached的区别与比较

1 、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。memcache支持简单的数据类型,String。

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

3 、Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用,而Memecache把数据全部存在内存之中

4、 redis的速度比memcached快很多

5、Memcached是多线程,非阻塞IO复用的网络模型;Redis使用单线程的IO复用模型。

Redis与Memcached的区别与比较

如果想要更详细了解的话,可以查看慕课网上的这篇手记(非常推荐) :《脚踏两只船的困惑 - Memcached与Redis》www.imooc.com/article/235…

Redis与Memcached的选择

终极策略: 使用Redis的String类型做的事,都可以用Memcached替换,以此换取更好的性能提升; 除此以外,优先考虑Redis;

使用redis有哪些好处?

Redis 实现秒杀

导语

秒杀想必大家都了解,在短时间内请求访问会激增,同时要保证不会超卖和数据的准确,对于技术方面还是有些考验的。可惜的是,一直没有机会在项目中实现。再看了一些资料后,打算实验下。以下代码仅为测试所用,环境比较简单,请根据实际情况进行修改。…

        

【原创】那些年用过的Redis集群架构(含面试解析)

引言

今天是2019年2月12号,也就是大年初八,我接到了高中同学刘有码面试失利的消息。

他面试的时候,身份是某知名公司的小码农一枚,却因为不懂自己生产上Redis是如何部署的,导致面试失败!

人间惨剧,莫过于此。

接到他面试失利的消息,我差点发出猪一样的笑声,显然是平时太少关注孤独烟这个公众号!

我提笔6次,放笔6次,差点因为过于兴奋而没法编下去。最后还是硬着头皮写下了本文!…

        

分布式之redis复习精讲

引言

为什么写这篇文章?

博主的《分布式之消息队列复习精讲》得到了大家的好评,内心诚惶诚恐,想着再出一篇关于复习精讲的文章。但是还是要说明一下,复习精讲的文章偏面试准备,真正在开发过程中,还是脚踏实地,一步一个脚印,不要投机取巧。
考虑到绝大部分写业务的程序员,在实际开发中使用redis的时候,只会setvalue和getvalue两个操作,对redis整体缺乏一个认知。又恰逢博主某个同事下周要去培训redis,所以博主斗胆以redis为题材,对redis常见问题做一个总结,希望能够弥补大家的知识盲点。…

聊聊 Redis 使用场景

本文,是升级版,补充部分实战案例。梳理几个场景下利用 Redis 的特性可以大大提高效率。

随着数据量的增长,MySQL 已经满足不了大型互联网类应用的需求。因此,Redis 基于内存存储数据,可以极大的提高查询性能,对产品在架构上很好的补充。在某些场景下,可以充分的利用 Redis 的特性,大大提高效率。

缓存

对于热点数据,缓存以后可能读取数十万次,因此,对于热点数据,缓存的价值非常大。例如,分类栏目更新频率不高,但是绝大多数的页面都需要访问这个数据,因此读取频率相当高,可以考虑基于 Redis 实现缓存。…