1.1. Redis特点
Redis是一种NoSQL数据库,或者非关系型数据库。
Redis是一个开源(BSD授权)的内存数据结构存储系统、可以用作数据库、缓存和消息代理。Redis支持的数据结构有Strings、hashes、lists、sets,sorted sets,bitmaps,hyperloglogs 和geospatial indexes。Redis拥有内置的复制功能,Lua脚本功能,LRU失效机制,事务机制和不同级别的磁盘持久化机制,还通过Redis Sentinel和Redis Cluter自动化分区提供了高可用性。
Redis的主要特点如下所示:
(1)支持多种常用的数据结构的存取。
(2)支持内存数据集。
(3)支持数据持久化保存到磁盘。
(4)支持异步的主从复制机制。
(5)支持事务机制。
(6)支持发布订阅机制。
(7)支持Lua脚本化。
(8)支持LRU失效机制。
(9)支持监控和通知以及失效自动转化机制。
Redis官方网站:
以下网站提供了Redis命令学习的在线使用环境:
1.2. Redis安装
从官方网站下载页面找到最新的稳定版。
本文基于Redis 3.2.9稳定版。
http://download.redis.io/releases/redis-3.2.9.tar.gz
Redis暂不提供Windows版本的官方版本,有需要时可使用开源社区版。
https://github.com/MSOpenTech/redis
解压缩后执行:
make PREFIX=/opt/redis
make install PREFIX=/opt/redis
至此,Redis可执行文件已经安装到了/opt/redis目录。
可将/opt/redis/bin目录的程序全部移动到/opt/redis目录,并建立好data和logs目录以及redis.conf配置文件。
redis-benchmark redis基准测试程序。
redis-check-aof redis AOF数据库检测程序。
redis-check-rdb redis RDB数据库检测程序。
redis-cli redis客户端程序。
redis-server redis服务器程序。
redis-sentinel redis哨兵程序。
redis.conf 自建文件, redis配置文件。
data 自建目录,存放redis.rdb和redis.aof数据文件。
logs 自建目录,存放redis.log日志文件。
1.3. Redis配置
Redis的最基本配置如下所示:
# 是否使用守护程序在后台运行。yes:是,no:否。
daemonize no
# 保存进程ID的文件。
pidfile "./logs/redis.pid"
# 端口号,默认6379。
port 6379
# 监听队列大小。
tcp-backlog 128
# 绑定到哪个IP地址上。
bind 192.168.197.101
# 超时时间,秒。在指定时间内没有操作则断开连接。
timeout 300
# keepalive时间,秒。在指定时间内没有操作则发送ACK(SO_KEEPALIVE)。
tcp-keepalive 60
# 日志级别:四个级别;debug,verbose, notice, warning
loglevel debug
# 日志文件,或者stdout:标准输出。
logfile "./logs/redis.log"
# 数据库数量。
databases 16
# 在指定时间内更新操作达到指定次数则同步数据到数据文件中。
# 60秒内更新了1次则同步。
save 60 1
# RDB是否压缩。
rdbcompression yes
# RDB数据文件名。
dbfilename "redis.rdb"
# 数据文件目录。
dir "./data/"
# 指定客户端连接密码。
requirepass 123456
# 指定最多客户连接数的限制。
maxclients 100
# 指定最大内存限制。
maxmemory 16mb
# 指定是否每次更新操作都记录日志。
appendonly no
# 指定数据更新日志文件名。
appendfilename "redis.aof"
# 指定数据更新日志的记录条件:
# no(Redis不主动刷新缓存),
# always(Redis每次更新都刷新缓存),
# everysec(Redis每秒钟刷新缓存1次)
appendfsync everysec
1.4. Redis运行控制
(1)启动Redis服务。
运行以下命令启动Redis服务。
./redis-server ./redis.conf
(2)从Redis客户端连接到Redis服务。
运行以下命令连接到Redis服务。
./redis-cli -h redis.coe2coe.me -p 6379 -a 123456
假定:
redis服务器地址:redis.coe2coe.me
redis端口号:6379
redis 密码: 123456
连接成功后显示:
redis.coe2coe.me:6379>
至此,可以执行各种Redis命令了。
在redis客户端提示符下,输入quit<ENTER>可断开连接,退出redis客户端程序。
如果由于各种原因导致未能成功连接到Redis服务,则Redis-cli给出以下提示:
Could not connect to Redis at redis.coe2coe.me:6379: Connection refused
Could not connect to Redis at redis.coe2coe.me:6379: Connection refused
not connected>
(3)用Redis客户端停止Redis服务。
执行以下命令可停止redis服务。
./redis-cli -h redis.coe2coe.me -p 6379 -a 123456 shutdown
此时可以看到redis服务已经停止运行了。
(4)Redis RDB数据库检查。
使用redis-check-rdb程序可以检查RDB数据库的各种信息,包括:
Redis版本号、时间戳、内存使用量、使用的逻辑数据库、校验码和键的数量以及过期情况。
./redis-check-rdb ./data/redis.rdb
[offset 0] Checking RDB file ./data/redis.rdb
[offset 26] AUX FIELD redis-ver = '3.2.9'
[offset 40] AUX FIELD redis-bits = '64'
[offset 52] AUX FIELD ctime = '1499832632'
[offset 67] AUX FIELD used-mem = '252320'
[offset 69] Selecting DB ID 0
[offset 83] Selecting DB ID 1
[offset 118] Checksum OK
[offset 118] \o/ RDB looks OK! \o/
[info] 2 keys read
[info] 0 expires
[info] 0 already expired