保研无望,放弃幻想,准备考研
Redis简介
引入问题
在初学java web开发时,想必使用的数据库都是MySQL,来进行一些简单的增删改查。但在做一些大项目和实际开发中,比如一些商品抢购的情景,或者是主页访问量瞬间较大的时候,单一使用数据库(MySQL数据库)来保存数据的系统会因为面向磁盘,读写速度比较慢的问题而存在严重的性能弊端,一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读写操作,这个时候往往不是数据库能够承受的,极其容易造成数据库系统瘫痪,最终导致服务宕机的严重生产问题。
NoSQL 技术
NoSQL是对不同于传统的关系数据库的数据库管理系统的统称,即广义地来说可以把所有不是关系型数据库的数据库统称为NoSQL。
NoSQL 数据库专门构建用于特定的数据模型,并且具有灵活的架构来构建现代应用程序。NoSQL 数据库使用各种数据模型来访问和管理数据。这些类型的数据库专门针对需要大数据量、低延迟和灵活数据模型的应用程序进行了优化,这是通过放宽其他数据库的某些数据一致性限制来实现的。
Redis
Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供的数据是可以达到100000+的QPS(每秒内查询次数)。它存储的value类型比较丰富,也被称为结构化的NoSql数据库。此外,还支持集群、分布式、主从同步等配置,原则上可以无限扩展,让更多的数据存储在内存中。
Redis的启动和相关设置
下载
在GitHub上下载最新版本即可
发布 ·Microsoft Archive/Redis (github.com)
启动
点击解压后的 redis-server.exe 即可启动服务,默认端口号6397
相关设置
初始化的情况下是没有账户和密码的,但是为了安全性我们需要设定账户和密码。
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
案例
例如我们设置键为'name',他的值为"donglingyue"
获取该键时输入get+key即可得到value的值,如果输入未定义的key,结果是必然报错了。如果重复赋值,那么之前的值会被最新赋值所覆盖。
SETNX key value 的作用是当key不存在时,才为key赋值,若存在,则不赋值。
哈希 hash
数据结构图
案例
我们存储一个学生的基本信息,将他的唯一id设置为key,其余资料设置为value。
设置和获取语法如上
注意,在使用 HDEL key field 删除字段时,删除的时value里的,不是把整个对象删除。
列表 list
通用命令
至此,Redis的基础操作已经讲解完毕,下一篇讲解实战应用。