一、redis简介

1. 简介

Redis是一款开源的,ANSI C语言编写的,高级键值(key-value)缓存和支持永久存储NoSQL数据库产品。
Redis采用内存(In-Memory)数据集(DataSet) 。支持多种数据类型。运行于大多数POSIX系统,如Linux、*BSD、OS X等。作者: Salvatore Sanfilippo

2. 与其他缓存数据库对比

  1. Memcached:
    • 优点:
      高性能读写、单一数据类型、支持客户端式分布式集群、一致性hash、多核结构、多线程读写性能高。
    • 缺点:
      无持久化、节点故障可能出现缓存穿透、分布式需要客户端实现、跨机房数据同步困难、架构扩容复杂度高
  2. Redis:
    • 优点
      高性能读写、多数据类型支持、数据持久化、高可用架构、支持自定义虚拟内存、支持分布式分片集群、单线程读写性能极高
    • 缺点:
      多线程读写较Memcached慢
  3. Tair:
    • 优点:
      高性能读写、支持三种存储引擎(ddb、rdb、ldb)、支持高可用、支持分布式分片集群、支撑了几乎所有淘宝业务的缓存。
    • 缺点:
      单机情况下,读写性能较其他两种产品较慢

3. redis网页

Redis.io
Download/redis.io
Redisdoc.com
redis.cn

二、安装和部署redis

1. 多种安装方式

  1. epel源方式安装[版本低]
1
2
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum install redis -y
  1. 编译安装[版本高]
    下载安装
1
2
3
4
wget -P /server/tools/  http://download.redis.io/releases/redis-5.0.0.tar.gz
tar xzf /server/tools/redis-5.0.0.tar.gz -C /opt
cd /opt && ln -s redis-5.0.0 redis
cd redis && make

设置环境变量

1
2
echo 'export PATH=/opt/redis/src:$PATH ' >>/etc/profile
source /etc/profile

2. 启动和简单操作

  1. 启动redis
1
redis-server &
  1. 连接redis
1
redis-cli
  1. 简单操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#设置key和值
[root@xxx ~]# 10.0.0.41:6379> set luokey luogang
OK
#查看key对应的值
[root@xxx ~]# 127.0.0.1:6379> get luokey
"luogang"
#查看数据库中所有key的值
[root@xxx ~]# 127.0.0.1:6379> keys *
1) "luokey"
#查看key是否存在
[root@xxx ~]# 127.0.0.1:6379> exists luokey
(integer) 1
#查看key的数据类型
[root@xxx ~]# 127.0.0.1:6379> type luokey
string
#查看字符串的长度
[root@xxx ~]# 127.0.0.1:6379> strlen luokey
(integer) 10
#删除key
[root@xxx ~]# 127.0.0.1:6379> del luokey
(integer) 1
  1. 关闭redis
1
2
3
4
#redis中
127.0.0.1:6379> shutdown
#redis外
redis-cli shutdown

三、redis配置文件和多实例

redis启动时,默认调用安装目录下的redis.conf命令进行启动,也可以直接跟配置文件路径,以该配置文件进行启动,因此可以很方便进行多实例启动

1. 创建基本配置文件

1
2
3
4
5
6
7
8
9
mkdir -p /data/redis_m/6379/
cat >/data/redis_m/6379/redis.conf <<'EOF'
daemonize yes
port 6379
logfile /data/redis_m/6379/redis.log
dir /data/redis_m/6379
dbfilename dump.rdb
bind 10.0.0.52 127.0.0.1
EOF

以上语句分别指定后台运行,执行端口,指定日志文件,指定数据目录,指定持久化文件名,指定监听的IP地址.

2. 多实例与指定配置文件启动

1
redis-server /data/redis_m/6379/redis.conf

redis多实例,只需要按上图那样配置多个配置文件,然后以该配置文件启动即可

四、redis重要命令

1. info

redis的info命令可以看到非常多的状态信息,可以通过该信息实现对redis的监控
命令说明详见http://redisdoc.com/server/info.html

2. config set

语法:CONFIG SET parameter value
通过config set命令,可以不重启redis实现对部分配置的修改和生效,CONFIG SET 可以修改的配置参数可以使用命令 CONFIG GET * 来列出,所有被 CONFIG SET 修改的配置参数都会立即生效。
但重启失效,所以需要同步修改配置文件中的相关参数
举例:

1
2
3
4
5
6
7
8
[root@xxx ~]# redis> CONFIG GET slowlog-max-len
1) "slowlog-max-len"
2) "1024"
[root@xxx ~]# redis> CONFIG SET slowlog-max-len 10086
OK
[root@xxx ~]# redis> CONFIG GET slowlog-max-len
1) "slowlog-max-len"
2) "10086"

3. 其他命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Info				显示info信息
Clinet list 客户端列表
Client kill ip:port 关闭指定客户端
config get * 获取config配置
CONFIG GET/SET 动态修改配置
Dbsize
FLUSHALL 清空所有数据
select 1
FLUSHDB 清空当前库
MONITOR 监控实时指令
SHUTDOWN 关闭服务器
save 将当前数据保存
SLAVEOF host port 主从配置
SLAVEOF NO ONE
SYNC 主从同步
ROLE 返回主从角色