Redis入门介绍

前言

在web开发中,数据库起着至关重要的作用,关系型数据库一直被使用,但随着高并发对系统带来的性能满足等问题,关系型数据库在一定的程度上已无法应对,非关系型数据库就产生了。本文介绍的redis就是其中的一种。

Redis是什么?

介绍redis之前先知悉以下名词:

1数据库

简单来说就是用来存放数据的仓库。举个例子:淘宝网上的商品信息(数据),这些数据信息就是存放在数据库里面。

2关系型数据库

关系型数据库简单的可以理解为二维数据库,表的格式就如Excel,有行有列。表的关系主要体现在外键的建立,基于这个关系可以进行连接(join)来实现复杂查询。

3非关系型数据

非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。非关系型数据库分为:

1)面向高性能并发读写的key-value数据库

key-value数据库的主要特点即使具有极高的并发读写性能,Redis就是这类的代表

2)面向海量数据访问的面向文档数据库

这类数据库的特点是,可以在海量的数据中快速的查询数据,典型代表为MongoDB以及CouchDB

3)面向可扩展性的分布式数据库

这类数据库想解决的问题就是传统数据库存在可扩展性上的缺陷,这类数据库可以适应数据量的增加以及数据结构的变化。

那么,Redis是什么呢?

两句话可以做下概括:

1) 是一个完全开源免费的key-value内存数据库

2) 通常被认为是一个数据结构服务器,主要是因为其有着丰富的数据结构:

String——字符串,Hash—字典,List——列表,Set——集合,Sorted Set——有序集合

Redis应用场景,它能做什么

众多语言都支持Redis,因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,这样可以大大节省系统直接读取磁盘来获得数据的I/O开销,更重要的是可以极大提升速度。

拿大型网站来举个例子,比如a网站首页一天有100万人访问,其中有一个板块为推荐新闻。要是直接从数据库查询,那么一天就要多消耗100万次数据库请求。上面已经说过,Redis支持丰富的数据类型,所以这完全可以用Redis来完成,将这种热点数据存到Redis(内存)中,要用的时候,直接从内存取,极大的提高了速度和节约了服务器的开销。

redis优缺点

优点:

(1) 速度快,因为数据存在内存中

(2) 支持丰富数据类型,支持string,list,set,sorted set,hash

(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行

(4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

缺点:

(1) 由于是内存数据库,所以,单台机器,存储的数据量,跟机器本身的内存大小。虽然redis本身有key过期策略,但是还是需要提前预估和节约内存。如果内存增长过快,需要定期删除数据。

(2)如果进行完整重同步,由于需要生成rdb文件,并进行传输,会占用主机的CPU,并会消耗现网的带宽。不过redis2.8版本,已经有部分重同步的功能,但是还是有可能有完整重同步的。比如,新上线的备机。

(3)修改配置文件,进行重启,将硬盘中的数据加载进内存,时间比较久。在这个过程中,redis不能提供服务。

安装与使用

Mac下 Redis的安装,请参照以下链接:

https://www.jianshu.com/p/d5d95c069442

Windows安装使用,请参照以下链接:

更多入门详情可参考以下链接:

Redis基本函数(进入client命令行执行函数操作)

1)SET key

设置key值

2)DEL key

删除指定的key

3)EXISTS key

检查给定的key是否存在

4)EXPIRE key seconds

为key设置过期时间

5)EXPIRE key timestamp

用时间戳的方式给key设置过期时间

6)PEXPIRE key milliseconds

设置key的过期时间以毫秒计

7)KEYS pattern

查找所有符合给定模式的key

8)PERSIST key

移除key的过期时间,key将持久保存

9)PTTL key

以毫秒为单位返回key的剩余过期时间

10)TTL key

以秒为单位,返回给定key的剩余生存时间

11)RANDOMKEY

从当前数据库中随机返回一个key

12)RENAME key newkey

修改key的名称

13)RENAMENX key newkey

仅当newkey不存在时,将key改名为newkey

14)TYPE key

返回key所存储的值的类型

总结

基本的入门知识就到这里,大家可结合自己的开发语言进行集成使用,使用编程语言可以让redis更好展示它的用处

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180605G1NOZ400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券