程序员

5分钟快速认识 Redis

2019-01-03  本文已影响13人  ef3c855d1b6d

本文内容主要通过阅读《Redis 入门指南》总结,感觉不错,适合新手阅读。

认识

Redis 是一个开源的、高性能的、基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储需求。

Redis,全称 Remote Dictionary Server,以字典结构存储数据,并允许其他应用通过 TCP 协议读写字典中的内容。

Redis 字典中的键值支持的数据类型如下:

优势

开始

安装(Mac OS)

$ brew install redis

启动

# 默认端口 6379
$ redis-server

# 自定义端口
$ redis-server --port 6380

注:另可通过初始化脚本启动 Redis,可以随系统自动运行,适合在生产环境使用这种方式。

打开命令行客户端

$ redis-cli

停止

由于 Redis 可能正在将内存的数据同步到硬盘,强行停止可能导致数据丢失。正确停止方式

$ redis-cli SHUTDOWN

使用命令行客户端

使用 redis-cli 有两种方式:

参数模式

交互模式

直接无参输入 redis-cli 即可进入交互模式。

$ redis-cli
127.0.0.1:6379> PING
PONG
127.0.0.1:6379> ECHO hi
"hi"

执行命令的返回值

命令的返回值有 5 种类型:

  1. 状态回复(status reply)

    最简单的一种回复。比如回复 OK,回复 PONG ...

  2. 错误回复(error reply)

    当出现命令不存在或命令格式有错误等情况时,会返回错误回复。以 (error) 开头。

    (error) ...
    
  3. 整数回复(integer reply)

    Redis 没有整数类型,但是提供了一些用于整数操作的命令,会返回整数。以 (integer) 开头。

    (integer) 1
    
  4. 字符串回复(bulk reply)

    最常见。当请求一个字符串类型键的键值或一个其他类型键中的某个元素时就会得到一个字符串回复。

    127.0.0.1:6379> GET foo
    "1"
    

    当请求的键值不存在会得到一个空结果,显示 (nil)

    127.0.0.1:6379> GET bar
    (nil)
    
  5. 多行字符串回复(multi-bulk reply)

    当请求一个非字符串类型键的元素列表时就会收到多行字符串回复。多行字符串回复中的每行字符串都以一个序号开头,如:

    127.0.0.1:6379> KEYS *
    1)"bar"
    2)"foo"
    

配置 Redis

通过命令行传参可以简单设置一些配置,还可以通过配置文件来设置配置。

启用配置文件的方法:(将配置文件路径作为参数)

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

多数据库(多字典)

一个 Redis 实例提供多个用来存储数据的字典,客户端可以指定将数据存储在哪个字典中。

相当于其他数据库创建过个数据库的概念。可以将其中的每个字典理解成一个独立的数据库。

是否可以命名?

不可以。

注意。多个数据库之间并不是完全隔离,比如 FLUSHALL 命令可以清空一个 Redis 实例中所有数据库的数据。

总结。这些数据库更像是一种命名空间,不适宜存储不同应用程序的数据。比如可以使用 0 号数据库存储某个应用生产环境中的数据,使用 1 号数据库存储测试环境中的数据,但不适宜使用 0 号数据库存储 A 应用的数据而使用 1 号数据库存储 B 应用的数据,不同的应用应该使用不同的Redis实例存储数据。(由于Redis非常轻量级,一个空Redis实例占用的内存只有1MB左右,所以不用担心多个Redis实例会额外占用很多内存。)

参考

李子骅, 《Redis 入门指南》

上一篇下一篇

猜你喜欢

热点阅读