Redis快速入门

Redis 的下载与安装

windows:

​ Redis 官方没有做 windows 版,但是微软自己做了一个:

微软的 GitHub 页面(推荐下载.zip 压缩文件)

Linux:

Redis 官网

Redis 中文镜像站

Redis 是什么

  1. Redis 是一种NoSQL数据库,不是传统的关系型数据库
  2. Remote Directory Server(远程字典服务器?翻译是有点奇怪),性能非常高,单机能达到 15w qps,通常适合做缓存,也可以持久化
  3. 开源免费,高性能的分布式 内存数据库 ,基于内存运行并 支持持久化 的 NoSQL 数据库,是最热门的 NoSQL 数据库之一,也称为数据结构服务器

key-value 存储模式?

key-value 存储模式的非关系型数据库有很多,Redis 是其中之一,那么对比起来 Redis 有哪些优势呢?

  1. Redis 有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis 的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
  2. Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样 Redis 可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问

Redis 的工作模式

  1. 作为一个数据库,基本的操作如都是一用俱全的,Redis 在运行期间会维护一块内存,内存里面可以存放复杂的数据结构如 Hash,list,set,zset等等,同时还有一个指令解析器去解析应用程序发过来的指令,然后才对内存进行操作。
  2. 但是,长期工作在内存是不安全的,例如断电或者异常退出都会导致内存中的数据被抹除,这显然不是我们想要的,所以这就涉及到 持久化存储 的问题了。但和 MySQL 不同的是,它在磁盘中并不是一个 Database 的形态,而是文件形态,文件后缀名为.db

Redis 的安装

​ 这里以 windows 操作系统为例,第一步已经把文件给下载下来了,我们把它解压出来,得到如下工作目录

1.png

Redis 服务器的运行

我们只需要双击 redis-server.exe 即可运行

命令行运行模式:cd 到这个目录下,运行 redis-server.exe redis.windows.conf 即可

​ 把这个目录添加到环境变量里就不必 cd 了

2.png

如图所示,默认端口号是 6379

Tips:不要关闭这个窗口!不要关闭这个窗口!不要关闭这个窗口!,关了就访问不到这个服务了,我们要让它后台运行着。

Redis 客户端的运行

现在服务端已经有了,我们现在需要启动客户端,还是这个工作目录,双击 redis-cli.exe 运行即可,默认端口号都已经配置好了

3.png

一打开就连上了,比 MySQL 轻量简便许多

基本使用

Redis 命令参考 (大而全,什么都有,以后有任何疑惑都可以来这里找到参考)

Redis 安装好后,默认有16个数据库,初试默认使用 0 号库,编号是 0…15

  1. 添加 key - value [set]
  2. 查看当前 Redis 的所有 key [keys *]
  3. 获取 key 对应的 value [get key]
  4. 切换 Redis 数据库 [select index]
  5. 查看当前数据库的 key - value 数量 [dbsize]
  6. 清空当前数据库的 key-value [flushdb]
  7. 清空所有数据库的 key-value [flushall]

现在来尝试第一条命令【set】,打开我们刚刚连接的客户端,输入 set

4.png
当我们输入 set 后,它就自动给我们做成了参数提示,我们只需要一个一个添就好了

set key1 hello

回车即可。

它提示我们 "OK",这表示操作成功,现在我们已经有了一个键值对 key1-"hello"

现在来尝试通过键获取值

get key1

运行结果:

"hello"

尝试切换数据库(默认为 0,索引值是 0 - 15

select 1

此时我们会发现,当我们再次 get key1 的时候,返回的结果是nil

查询当前数据库的键值对数量

dbsize

运行结果:

(integer) 1

清空当前数据库:

flushdb

清空所有的数据库:

flushall