• Redis介绍


                                                                                                                                                         Redis介绍

    (一)产生Redis 命令背景
        随着Web2.0的时代的到来,用户访问量大幅度提升,同时产生了大量的用户数据。加上后来的智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。包括web服务器CPU及内存压力,数据库服务器IO压力等。
        关于如何解决Web服务器的负载压力,其中最常用的一种方式就是使用nginx实现web集群的服务转发以及服务拆分等等。但是这样也会存在问题,后端服务器的多个tomcat之间如何解决session共享的问题,以及session存放的问题等等。

    为了解决session存放的问题,也有多种解决方案

    方案一:存放在cookie里面。不安全,否定

    方案二:存放在文件或者数据库当中。速度慢

    方案三:session复制。大量session冗余,节点浪费大

    方案四:使用NoSQL缓存数据库。例如redis或者memcache等,完美解决

    (二)NoSQL数据库简介
        NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。

    1.NoSQL的适应场景

    对数据高并发的读写

    海量数据的读写

    对数据高可扩展性的

    速度够快,能够快速的存取数据

    2.NoSQL不适用场景

    需要事务支持

    基于sql的结构化查询存储,处理复杂的关系,需要即席查询(用户自定义查询条件的查询)。

    3.Nosql数据库的简介

    Memcache:基本上很少人用了。
    Redis:覆盖memcache的所有的功能,基本上替代了memcache,可以快速的存取数据,所有的数据都是在内存当中,存放数据量的大小,取决于内存大小。
    MongoDB:nosql数据库,数据主要是存储在内存当中,如果内存不够,数据可以落地到磁盘里面去,而且MongoDB支持sql语句的查询,是最像关系型数据库的非关系型数据库。
    Hbase:列式数据库存储,可以有上亿条数据,可以有上百万列等等都可以做到轻松的数据的查询,是大数据领域里面一个非常重要的非关系型数据库,原型是2006年Google发表BigTable论文。
    ————————————————
    版权声明:本文为CSDN博主「DevinKim」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/Yanxu_Jin/article/details/103543409

    1.Redis的特性

    高效性:Redis读取的速度是110000次/S,写的速度是81000次/S。
    原子性:对每一条数据操作要么成功,要么失败。
    支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)。
    稳定性:redis支持各种架构,主从复制,哨兵模式,redis集群。
    其他特性:支持过期时间,支持事务,消息订阅。
    2.redis的适用场景
    获取最新的N个数据
    获取最新榜单的topN
    需要精确设置过期时间的应用 可对数据设置过期的时间,多长时间之后,数据就会自动删除掉
    计数器的应用:利用INCR,DECR命令来构建计数器系统,数据来一次就累加一次
    数据去重(Uniq操作):可以对数据进行去重操作
    实时系统:Pub/Sub系统可以构建实时的消息系统
    构建消息队列:你发送一个消息,我来接受这个消息即可
    构建队列系统:通过redis来构建先进先出的数据的队列
    数据缓存:将一些比较频繁使用的热数据 缓存到内存里面去
    3.Redis数据类型与命名
    3.1Redis中的数据类型
    string 字符串,类似于Java的字符串,同时支持数值类型的操作。
    list 列表类似于 ArrayList 。
    hash 类似于HashMap 类似于hash散列表,对应key,value对的数据类型。
    set 类似于hashSet 对数据进行去重,不会对数据进行排序操作。
    zset 类似于 linkedHashSet 对数据进行排序操作。

    3.2Redis 操作命令(熟悉)
    启动并进入Redis客户端:

    创建Maven工程

    编写RedisJDBC工具类

  • 相关阅读:
    当下流行的分布式文件系统大阅兵
    smb相关资料
    Linux下将多个静态库(.a)合并成一个静态库文件(.a)的命令操作,方法一
    IBInspectable的使用
    iOS开发拓展篇——如何把项目托管到GitHub
    iOS开发拓展篇-XMPP简单介绍
    iOS开发拓展篇—应用之间的跳转和数据传递
    使用NSURLSession获取网络数据和下载文件
    李洪强实现横向滚动的View<二>
    李洪强实现横向滚动的View<一>
  • 原文地址:https://www.cnblogs.com/liyalong/p/12231604.html
Copyright © 2020-2023  润新知