redis原理(一)介绍

一、redis概括:

1、简介:

(1)redis是一个开源的、使用C语言编写的、远程内存NoSql数据库,redis之所以说是内存数据库,是因为redis基于内存的读取和写入相比传统的数据库基于磁盘IO快上数倍。

使用redis而不是关系数据库或者其他硬盘存储数据库,可以避免写入不必要的临时数据,也免去了对临时数据进行扫描或者删除的麻烦,并最终改善程序的性能。

(2)可以存储key与5种(字符串、列表、集合、散列表、有序集合)不同类型的value之间的映射。

(3) Redis 内置了复制(replication),LUA脚本(Lua scripting),LRU驱动事件(LRU eviction),事务(transactions)和不同级别的磁盘持久化(persistence), 并通过Redis哨兵(Sentinel)和自动分区(Cluster)提供高可用性(high availability)。

 通过复制、持久化、客户端分片等特性,用户可以很方便的将Redis扩展成一个能够包含数百GB数据、每秒处理上百万次请求的系统。

2、特点:redis是一个可以用来解决问题的工具,

(1)拥有其他数据库不具备的数据结构;

(2)拥有内存存储(这使得redis的速度非常快)、远程(这使得redis可以与多个客户端和服务器进行连接)、持久化(这使得服务器在重启之后仍然保存重启之前的数据)、可扩展(通过主从复制和分片)等多个特性。

3、jedis:就是集成了redis的一些命令操作,封装了redis的java客户端。提供了连接池管理。一般不直接使用jedis,而是在其上在封装一层,作为业务的使用。

4、redis默认值:

(1)默认的数据库:redis总共有16个数据库,不指定的话默认连接第0个数据库。每个数据库数据不共享。

(2)key的最大长度:redis的key和value的最大上限是512M。当key大于10k时,称得上是大key

1byte = 8bit,1k = 1024byte,1M = 1024k,1G = 1024M,bit = 字节,一个汉字占2个bit,一个英文(不区分大小写)占1bit,中文标点占3个bit,英文占1个bit。

二、redis与其他数据库的比较:

三、应用场景:redis在现在的应用中使用的非常广泛。主要的作用在于:
1、提供缓存服务,存储访问频率高的热数据防止穿透到数据库
2、在分布式系统中可以作为实现分布式锁的一种实现方案

3、投票,计算评分,根据评分来决定如何排序和展示。如用户投票网站,

(1)使用一个HASH散列用来存储用户id与用户信息;

(2)再使用两个有序集合ZSET来实现按照发布顺序 / 评分排序功能,time集合的成员为用户Id分值为发布的时间,score集合的成员为用户Id分值为评分;

(3)防止重复投票,使用一个SET集合存储用户id与投票用户id。

4、构建WEB应用:

(1)登陆token;

(2)购物车token;每个用户的购物车为一个散列,

(3)缓存生成的网页;

(4)缓存数据库行;

(5)分析网页访问记录。

你可能感兴趣的:(redis,redis,数据库,缓存)