一、redis简介
Redis 官网:https://redis.io/ http://www.redis.cn/map.html
Redis 是一种基于键值对(key-value) 的 NoSQL 数据库,与很多键值对数据库不同的是,Redis 中的值可以是由 string (字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、HyperLogLog、GEO(地理信息定位)等多种数据结构和算法组成,因此 Redis 可以满足很多的应用场景,而且因为 Redis 会将所有数据都存放在内存中,所以它的读写性能非常惊人。不仅如此,Redis 还可以将内存的数据利用快照和日志的形式保存到硬盘上,这样在发生类似断电或者机器故障的时候,内存中的数据不会“丢失”。除了上述功能以外,Redis 还提供了键过期、发布订阅、事务、流水线、Lua脚本等附加功能。
Redis 可以做什么?
缓存、排行榜系统、计数器应用、社交网络、消息队列系统
1、Redis的数据类型:
字符串、列表(lists)、集合(sets)、有序集合(sorts sets)、哈希表(hashs)
2、Redis和memcache相比的独特之处:
(1)redis可以用来做存储(storge)、而memcache是来做缓存(cache)。这个特点主要是因为其有“持久化”功能
(2)存储的数据有“结构”,对于memcache来说,存储的数据,只有一种类型——“字符串”,而redis则可以存储字符串、链表、集合、有序集合、哈序结构
3、持久化的两种方式:
Redis将数据存储于内存中,或被配置为使用虚拟内存。
实现数据持久化的两种方式:(1)使用截图的方式,将内存中的数据不断写入磁盘(性能高,但可能会引起一定程度的数据丢失)
(2)使用类似mysql的方式,记录每次更新的日志
4、Redis的主从同步:对提高读取性能非常有益
5、Redis服务端的默认端口是6379
二、环境准备
系统版本 CentOS 6.9
软件版本 Redis-4.0.8
三、安装redis
# yum install -y open-ssl-devel gcc glibc gcc-c* 先安装依赖包安装
# cd /usr/local/src/ 进入存放下载包目录
# wget http://download.redis.io/releases/redis-4.0.8.tar.gz 下载
# tar -xzvf redis-4.0.8.tar.gz -C /usr/local/ 解压到指定目录/usr/local/下
# cd /usr/local/
# ln -s redis-4.0.8 redis 做软连接的目的是为了不把redis 目录固定在指定版本上,有利于版本升级,是安装软件的一种好习惯。
# cd redis
# make
如果报如下错误:
在包含自 adlist.c:34 的文件中:
zmalloc.h:50:31: 错误:jemalloc/jemalloc.h:没有那个文件或目录
zmalloc.h:55:2: 错误:#error "Newer version of jemalloc required"
make[1]: *** [adlist.o] 错误 1
make[1]: Leaving directory `/usr/local/src/redis-4.0.8/src'
make: *** [all] 错误 2
则执行 # make MALLOC=libc
# make install 将相关运行文件放到 /usr/local/bin/ 下
# redis-cli -v 安装成功后可查看安装版本
四、配置、启动、操作、关闭Redis
安装完之后,/usr/local/redis/src 和 /usr/local/bin 目录下多了几个以 redis 开头可执行文件,我们称之为 redis shell,其说明如下:
可执行文件 |
作用 |
redis-server |
启动Redis |
redis-cli |
Redis 命令执行客户端 |
redis-benchmark |
Redis 基准测试工具 |
redis-check-aof |
Redis AOF 持久化文件检测和修复工具 |
redis-check-rdb |
Redis RDB 持久化文件检测和修复工具 |
redis-sentinel |
启动 Redis Sentinel |
1、启动 Redis
有三种方法启动 Redis:默认配置、运行配置、配置文件启动(建议这种方式)
默认配置:直接执行 redis-server 命令启动,启动后会打印出一些日志,通过日志信息可以看到一些信息,大概信息如下:
当前的 Redis 版本的是 3.0.7
Redis 的默认端口是6379
Redis 建议要使用配置文件来启动
因为直接启动无法自定义配置,所以这种方式是不会在生产环境中使用的。
运行启动
redis-server 加上要修改配置名和值(可以是多对),没有设置的配置将使用默认配置:
# redis-server --configkey1 configvalue1 --configkey2 configvalue2
例如,如果要用6380作为端口启动 Redis ,那么可以执行:
# redis-server --port 6380
虽然运行配置可以自定义配置,但是如果需要修改配置较多或者希望配置保存到文件中,不建议使用这种方式。
配置文件启动
# redis-server /usr/local/redis/redis.conf & 指定配置文件启动并放在后台运行
Redis的基础配置如下:
配置名 |
配置说明 |
port |
端口 |
logfile |
日志文件 |
dir |
Redis 工作目录(存放持久化文件和日志文件) |
daemonize |
是否以守护进程的方式启动 Redis |
2、Redis 命令行客户端
redis-cli 可以使用两种方式连接 Redis 服务器。
交互式方式:
redis-cli -h {host} -p {port}
# redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> get hello
"world"
命令方式:
redis-cli -h {host} -p {port} {command}
# redis-cli -h 127.0.0.1 -p 6379 get hello
"world"
如果不使用参数 -h ,默认连接127.0.0.1,如果不使用参数 -p ,默认 6379 号端口
3、停止服务
# redis-cli -h 127.0.0.1 -p 6379 shutdown 关闭127.0.0.1上6379端口的Redis服务
Redis 关闭的过程:断开与客户端的连接、持久化文件生成,是一种相对优雅的关闭方式。
除了可以通过 shutdown 命令关闭 Redis 服务以外,还可以通过 kill 进程号的方式关闭掉 Redis ,但是不要粗暴地使用 kill -9 强制杀死进程,不但不会持久化操作,还会造成缓冲区等资源不能被优雅关闭,极端情况造成 AOF 和复制丢失数据的情况。
shutdown 还有一个参数,代表是否在关闭 Redis 前,生成持久化文件:
redis-cli shutdown nosave|save
五、连接及启停总结
1、redis-cli -h {ip} -p {port} -cipherdir {/..路径/cipher/} 登录格式
其中-cipherdir是指定管理证书目录,如果有用管理证书时才使用。
2、redis-cli 普通直接登录
连接会要求输入密码认证,输入方式如下:
auth password(密码)
3、版本基本信息查询
连接后输入 info
5、设置密码
方法一,直接在配置文件 redis.conf 中直接加入如下行:
requirepass password(密码)
方法二,登录后输入如下行:
CONFIG set requirepass "password(密码)"
6、启停 redis
如果 redis 已经配置为 service 服务:
service redis start|stop|restart|status redis服务的启动|停止|重启|状态
如果 redis 没有配置为 service 服务:
/usr/local/bin/redis-cli shutdown
/usr/local/bin/redis-server /etc/redis.conf &
注:redis.conf 根据具体路径填写,带 conf 文件启动的可以区分启动不同实例。