Redis入门

保研无望,放弃幻想,准备考研

Redis简介

引入问题

在初学java web开发时,想必使用的数据库都是MySQL,来进行一些简单的增删改查。但在做一些大项目和实际开发中,比如一些商品抢购的情景,或者是主页访问量瞬间较大的时候,单一使用数据库(MySQL数据库)来保存数据的系统会因为面向磁盘,读写速度比较慢的问题而存在严重的性能弊端,一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读写操作,这个时候往往不是数据库能够承受的,极其容易造成数据库系统瘫痪,最终导致服务宕机的严重生产问题。

NoSQL 技术

NoSQL是对不同于传统的关系数据库的数据库管理系统的统称,即广义地来说可以把所有不是关系型数据库的数据库统称为NoSQL。

NoSQL 数据库专门构建用于特定的数据模型,并且具有灵活的架构来构建现代应用程序。NoSQL 数据库使用各种数据模型来访问和管理数据。这些类型的数据库专门针对需要大数据量、低延迟和灵活数据模型的应用程序进行了优化,这是通过放宽其他数据库的某些数据一致性限制来实现的。

Redis

Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供的数据是可以达到100000+的QPS(每秒内查询次数)。它存储的value类型比较丰富,也被称为结构化的NoSql数据库。此外,还支持集群、分布式、主从同步等配置,原则上可以无限扩展,让更多的数据存储在内存中。

Redis入门_第1张图片

 Redis的启动和相关设置

下载

在GitHub上下载最新版本即可
发布 ·Microsoft Archive/Redis (github.com)

启动

点击解压后的 redis-server.exe 即可启动服务,默认端口号6397

Redis入门_第2张图片

相关设置

初始化的情况下是没有账户和密码的,但是为了安全性我们需要设定账户和密码。

127.0.0.1:6379> config set requirepass 123456 #设置redis密码
OK #设置成功
127.0.0.1:6379> auth 123456 #输入验证密码
OK #验证成功
127.0.0.1:6379> config get requirepass #查看我们的密码
1) "requirepass"
2) "123456"

注意,设置密码后只有先输入密码才能操作其他命令

Redis数据类型

由于Redis存储的是key-value键值对类型的数据,其中key是字符串类型,而value有五种

  • 字符串 string
  • 哈希 hash (适合存储对象)
  • 列表 list
  • 集合 set
  • 有序集合 sorted set 

Redis常用命令

字符串 string

Redis入门_第3张图片

案例

例如我们设置键为'name',他的值为"donglingyue"

Redis入门_第4张图片

获取该键时输入get+key即可得到value的值,如果输入未定义的key,结果是必然报错了。如果重复赋值,那么之前的值会被最新赋值所覆盖。

Redis入门_第5张图片

SETNX key value 的作用是当key不存在时,才为key赋值,若存在,则不赋值。

Redis入门_第6张图片

哈希 hash

Redis入门_第7张图片

数据结构图

Redis入门_第8张图片

案例 

 我们存储一个学生的基本信息,将他的唯一id设置为key,其余资料设置为value。

Redis入门_第9张图片

设置和获取语法如上

注意,在使用 HDEL key field 删除字段时,删除的时value里的,不是把整个对象删除。

列表 list

Redis入门_第10张图片

通用命令

Redis入门_第11张图片

 至此,Redis的基础操作已经讲解完毕,下一篇讲解实战应用。

你可能感兴趣的:(java,web,redis,数据库,学习)