Redis学习笔记---基础一

本文最后更新于:2022年4月1日 上午

Redis简介

Redis是一个开源的、高性能的、基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储需求。同时Redis的诸多高层级功能使其可以胜任消息队列、任务队列等不同角色。

Redis的特性

1.键值数据类型

  • 字符串类型
  • 散列类型
  • 列表类型
  • 集合类型
  • 有序集合类型

2.内存存储于持久化

Redis数据库中的所有数据都是存储在内存中。由于内存的读写速度远快于硬盘,因此Redis在性能上对比其他基于硬盘存储的数据库有非常明显的优势,在一台普通的笔记本电脑上,Redis可以一秒内读写超过10万个键值。

3.功能丰富

Redis虽然是作为数据库开发的,但大部分人还是将其作为缓存、队列系统来用。

Redis和Memcached的对比:在性能上Redis是单线程的,而Memcached支持多线程,虽然在多核服务器上后者的性能理论相对高一些,但Redis的性能非常优异,这不会成为他的瓶颈。在Redis3.0中,加入了对集群的支持,Memcached不在具有优势

4.简单稳定

安装Redis

因为我用的是MBP,这里我只介绍OS X里的安装方法,通过 homebrew 来安装Redis。

1.首先安装HomeBrew

1
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"  

如果已经安装 homebrew ,执行 homebrew update 来更新 homebrew ,以便安装最新的 redis

2.通过Homebrew安装Redis

在终端中输入下面代码

1
$ brew install redis  

启动和停止Redis

1.启动

终端中输入如下命令,默认使用 6379 端口,即可启动Redis。

1
$ redis-server  

启动效果:

![Redis启动效果](/images/Screen Shot 2018-10-23 at 22.58.35.png)

也可通过 –port 参数自定义端口号。

1
$ redis-server --port 6380  

6379 是手机键盘上MERZ对应的数字,MERZ是一名意大利歌女的名字

2.停止

强行终止Redis进程可能会导致数据丢失,正确做法是 向Redis发送 SHUTDOWN 命令:

1
$ redis-cli SHUTDOWN  

Redis收到 SHUTDOWN 命令后,会先断开所有的客户端连接,然后根据配置执行持久化,最后完成退出。使用 kill Redis进程的PID 也可以正常关闭Redis,效果与 SHUTDOWN 一样。

配置

启用配置文件的方法是在启动时将配置文件的路径作为启动参数传递给 redis-server ,如:

1
$ redis-server /path/to/redis.conf  

Redis提供了一个配置文件的模板 redis.conf ,位于源代码目录的根目录中。

多数据库

Redis默认支持 16 个数据库,可通过配置参数 databases 来修改这一数字。客户端与Redis建立连接后自动选择 0 号数据库,可通过 SELECT 命令随时更换数据库:

1
2
3
redis> SELECT 1  
OK
redis [1]>

Redis不支持自定义数据库名字,每个数据库都以编号命名。Redis不支持为每个数据库设置不同的访问密码。所以一个客户端要么访问全部数据库,要么一个数据库也没有权限。多个数据库之间并不是完全隔离,FLUSHALL 命令可以清空Redis实例中所有数据库中的数据。由于Redis非常轻量级,一个空Redis实例占用的内存只有1MB左右,所以不用担心多个Redis实例会额外占用很多内存。

参考书籍:《Redis入门指南(第二版)》李子骅