redis使用手册、入门

2021年11月23日 阅读数:6
这篇文章主要向大家介绍redis使用手册、入门,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

Redis使用手册

简介

Redis:Remote DIctionary Server(远程字典服务)。nginx

是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。是彻底开源免费的,用C语言编写的,遵照BSD协议,高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库。redis

安装

Redis的官网是:https://redis.io数据库

下载稳定版 redis-4.0.9.tar.gz缓存

安装步骤安全

  1. 解压 tar -zxvf redis-4.0.9.tar.gz服务器

  2. 编译 进入cd redis-4.0.9 执行make (编译依赖gcc)网络

  3. (可不执行)安装 make PREFIX=/usr/local/redis install (PREFIX指定安装位置)tcp

  4. 编译生成src下的二进制文件分布式

    1. redis-server:Redis服务器
    2. redis-cli:Redis命令行客户端
    3. redis-benchmark:Redis性能测试工具
    4. redis-check-aof:AOF文件修复工具
    5. redis-check-rdb:RDB文件检查工具

经常使用命令

启动Redis服务 src/redis-server redis.conf工具

daemonize no
默认状况下,redis不做为守护进程运行。若是须要,请使用“yes”。
注意,redis将在守护时在/var/run/redis.pid中写入一个pid文件。

进入Redis客户端 src/redis-cli

$src/redis-cli 
# 字符串操做
127.0.0.1:6379> set foo bar #设置key-value值
OK
127.0.0.1:6379> get foo #获取key值
"bar"
127.0.0.1:6379> exists key #判断键是否存在 存在返回1,不然返回0
# 列表
127.0.0.1:6379> rpush foo 1 2 3 4 #设置key值[1,2,3,4]
(integer) 4
127.0.0.1:6379> lrange foo 0 -1 #获取key全部值
1) "1"
2) "2"
3) "3"
4) "4"
# 设置生存时间
127.0.0.1:6379> expire foo 10 #设置key的生存时间(秒) pexpire(毫秒)
(integer) 1
127.0.0.1:6379> expireat foo 1568797570 #设置key过时时间(时间戳秒) pexpireat(毫秒)
(integer) 1
127.0.0.1:6379> ttl foo  #查看key的剩余生存时间(秒)
(integer) 6              #6秒
127.0.0.1:6379> ttl foo  #查看key的剩余生存时间
(integer) -1             #key存在,没有设置生存时间
127.0.0.1:6379> ttl foo  #查看key的剩余生存时间
(integer) -2             #key不存在
127.0.0.1:6379> get foo  #时间到了以后
(nil)
127.0.0.1:6379> select 1 #切换数据库
127.0.0.1:6379> flushdb  #清空当前数据库数据
127.0.0.1:6379> flushall #清空全部数据库数据
127.0.0.1:6379> quit     #关闭链接

关闭Redis服务

  1. redis-cli shutdown save:安全关闭(数据会持久化),可是只适用于没有配置密码的场景(通常状况下不会给Redis设置密码。)
  2. kill -9 pid:强制关闭,可能会形成Redis内存数据丢失。
$src/redis-cli 
127.0.0.1:6379> shutdown save
not connected> quit

redis.conf详解

INCLUDES 引入

同nginx中的用法同样,能够引入更多的配置文件,便于管理

或是redis集群作一个通用的redis.conf,每台服务器自定义的设置能够经过include方式引入

#如:把[daemonize yes]写在local.conf文件中,在redis.conf中引入,一样能够生效
include local.conf

若是将此配置写在redis.conf 文件的开头,那么后面的配置会覆盖引入文件的配置,若是想以引入文件的配置为主,那么须要将 include 配置写在 redis.conf 文件的末尾。

MODULES 自定义模块

redis3.0的爆炸功能是新增了集群,而redis4.0就是在3.0的基础上新增了许多功能,自定义模块配置就是其中之一。

经过这里的 loadmodule 配置将引入自定义模块来新增一些功能。

loadmodule /path/to/my_module.so

NETWORK 网络

1. bind: 绑定redis网卡IP,默认为127.0.0.1,只能经过本机的客户端链接,而没法经过远程链接。bind为空接受全部可用网络接口的链接。
2. port: 指定redis运行的端口,默认是6379。因为Redis是单线程模型,所以单机开多个Redis进程的时候须要修改端口。
3. timeout: 设置客户端链接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该链接。默认值为0,表示不关闭。
4. tcp-keepalive: 单位是秒,表示将周期性的使用SO_KEEPALIVE检测客户端是否还处于健康状态,避免服务器一直阻塞,官方给出的建议值是300s,若是设置为0,则不会周期性的检测。

GENERAL 日志

1. daemonize:设置为yes表示指定Redis以守护进程的方式启动(后台启动)。默认值为 no
2. pidfile:配置PID文件路径,当redis做为守护进程运行的时候,它会把 pid 默认写到 /var/redis/run/redis_6379.pid 文件里面
3. loglevel :定义日志级别。默认值为notice,有以下4种取值:
        debug(记录大量日志信息,适用于开发、测试阶段)
        verbose(较多日志信息)
        notice(适量日志信息,使用于生产环境)
        warning(仅有部分重要、关键信息才会被记录)
4. logfile :配置log文件地址,默认打印在命令行终端的窗口上
5. databases:设置数据库的数目。默认的数据库是DB 0 ,能够在每一个链接上使用select  <dbid> 命令选择一个不一样的数据库,dbid是一个介于0到databases - 1 之间的数值。默认值是 16,也就是说默认Redis有16个数据库。

SNAPSHOTTING 持久化