redis使用手册、入门

Redis使用手册

简介

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

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

安装

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指定安装位置)

  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 持久化

原文地址:https://www.cnblogs.com/pidgey/p/11810332.html