• Redis学习笔记


    以前,一直拿redis当memcached来用,今天才真天了解到了Redis真正比memcached强大到了什么地方,他的真正的强势到了什么地方。

    首先最让我困惑的一点是,Redis是所有数据都存储到内存里面的吗?这让我费解,如果是,何来keys存在内存,从而提高性能。我很困惑,看了RDB、AOF以后,发现不像是数据的存储查询数据库文件。后来我决定重新学习Redis相关资料,得到的总结如下:

          Redis里的数据存储在哪里了?

          Redis的Key是绝对存储在内存里面的,这也是Redis高性能的一个依仗,哪么Value存到什么地方了?默认是存在Virtual Memery里面了,所谓虚拟内存,需要注意的是,这里的虚拟内存并不是系统的虚拟内存,而是Redis里的一个数据存储文件,这尼马让我郁闷良久。因为Redis里可以设置vm.swap文件的存放目录。

          Redis的内存的使用分析

          Redis为什么叫数据库文件叫虚拟内存,不叫数据库文件,这大有文章,所谓Redis的设计理念上数据是存储在内存中设计的,因为就算设置了虚拟内存,Redis会自动将热的数据放在内存,直接提供读取,把经常不读的数据放到虚拟内存中,从而提高性能。而Keys里己经记录了虚拟内存文件中的寻址数据,读取也是比一般数据库要快很多倍的。

          Redis的集群

          http://www.redis.cn/topics/cluster-tutorial.html

          redis分片,Redis高可用性,Redis主从备份,可以参考上文中,Redis-trip工具实现Redis-cluster真正集群。

          Redis分片是通过哈希算法将key区分几个区间,然后由划分库或服务器实现分片的。通过redis-trip工具实现非常智能。

          Redis的存储结构

          Redis支持Map、List、string、int等数据类型,为了减少Key的数量,减少内存的使用,合理使用Map、List可以减少内存和清晰程序逻辑。

          Redis的可靠性

          Redis官方就宣称Redis并不是一个数据绝对安全的数据存储引擎,当存储时Redis会先存储到内存,就返回了状态,在这期间并没有写入磁盘,这很有可能数据就没有了,但只因为这样,Redis的性能大大提升,减少了磁盘的写入频率。

           Redis应用场景

           Redis完全可以做数据高速缓存数据库、时时计数、时时统计

  • 相关阅读:
    Elasticsearch 搭建
    P137、面试题23:从上往下打印二叉树
    数组高级应用—排序与查找
    Java API ——StringBuffer类
    Java API ——String类
    P134、面试题22:栈的压入、弹出序列
    P132、面试题21:包含min函数的栈
    P127、面试题20:顺时针打印矩阵
    P125、面试题19:二叉树的镜像
    Java API ——Scanner类
  • 原文地址:https://www.cnblogs.com/a-xu/p/4422629.html
Copyright © 2020-2023  润新知