Redis之路(一)

Redis概述

一.传统的JavaWeb项目

        传统的JavaWeb项目使用数据库进行存储数据,而数据库持久化数据主要是面向磁盘,磁盘的读写速度比较慢。在一般的管理系统中,磁盘的读写速度是可以接受的,但是在互联网中,经常需要系统在极短时间内完成成千上万次的读写操作,那么这种读写速度就是不可接受的,严重情况下还会导致数据库瘫痪。

二.NoSQL技术

        为了在互联网中克服上面的问题,在系统中引入了NoSQL技术。NoSQL工具是一种基于内存的数据库,Redis和MongoDB是使用最广泛的NoSQL。

三.为什么选择Redis

        Redis支持每秒十几万次的读写操作,性能远超数据库。它优越的性能主要来自:

        1)基于ANSI C语言编写,接近于汇编语言,运行迅速。

        2)基于内存的读写,比基于磁盘的读写快得多。

        3)数据结构简单,只有6种数据类型。

        综上所述,如果将命中率高的数据的副本存储在Redis中,通过Redis访问操作这些数据,就会大大提高系统性能。

四.Redis的应用场景

    1)对常用数据的缓存     

        1.读操作流程:当需要读取一个数据的时候,先从位于内存的Redis查看是否有对应的数据,有则直接从内存中取出数据并返回。如果没有,则读取位于硬盘中的数据库数据,得到数据之后先将数据写入Redis,然后再返回数据。

        2.写操作流程:更新数据或者写入数据时,先将数据写入位于硬盘的数据库,然后再写入位于内存的Redis。

    2)需要对数据进行高速读写

        一些高速的读写场景,通常会采用异步写入数据库,即:先将高速读写数据缓存到Redis中,当满足一定条件时,再将Redis中的数据写入数据库,Redis起到了数据缓冲的作用。

        注意:Redis是基于内存的,数据不能够持久化或者数据持久化不规范,所以需要将Redis数据存入数据库。

五.在java程序中使用Redis

        需要导入jedis.jar包才能在java中使用Redis。

六.简单分析Redis的6种数据类型

Redis是一种键值对数据库,以key为索引找到缓存的数据。Redis支持6种数据类型:

    1.String(字符串)——保存字符创,整数和浮点数。

    2.List(列表)——一个链表,其中每个节点都包含一个字符串。

    3.Set(集合)——无序集合,里面每个元素都是一个唯一的字符串。

    4.Hash(哈希表散列)——类似java的Map,是一个键值对应的无序列表。

    5.Zset(有序集合)——可以包含字符串,整数,浮点值,分值。元素根据分值大小决定。

    6.HyperLogLog(基数)——计算重复的值,确定存储的数量,不提供返回功能。

七.关于Redis和数据库

    Redis更多的被用作于一种提高系统性能的辅助工具,并不能完全取代数据库。

    个人看来,程序,Redis以及数据库这三者的的关系就是计算机CPU,内存和硬盘的关系。CPU可以访问内存也可以访问硬盘,内存存储的是硬盘中部分数据的副本,而近似的,程序则可以访问Redis,也可以访问数据库,Redis只是一种提高性能的一种手段。

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值