云计算之Linux系统中Redis的安装与配置指导

内容导读

Redis简介

Redis数据结构

Redis安装与配置

一、Redis简介

Redis 是一个开源的使用 C 语言编写、支持网络、基于内存亦可持久化的日志型、 Key-Value 数据库,并提供多种语言的 API。从2010 年3月15日起,Redis的开发工作由VMware负责。

Redis是一个key-value存储系统,它支持存储的value类型相对更多,包括 string(字符串)、 list(链表)、 set(集合)、 zset与hash(哈希类型),目前应用非常流行。

Redis 支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层复制。从盘可以很方便地对数据进行写操作。

二、Redis数据结构

Redis 提供五种数据类型: string、list、hash、set 及 zset。
1、string字符串
string 是最简单的类型,一个 key 对应一个value。在 redis 数据库中,字符串是二进制安全的,这意味着它们具有已知的长度,并且不受任何特殊终⽌字符的影响。

可以在字符串存储的多达512MB字节内容。

基本操作命令:


2、list双向链表
list 是一个链表结构,主要功能是 push、 pop、获取一个范围的所有值等等。操作中 key
理解为链表的名字。

基本操作命令:

3、hash哈希表

哈希就是键值对集合。在 redis 当中,哈希是字体串字段和字符串值之间的映射,因此更适合表示对象。
hash相当于java当中的map集合,形如: List<Map<Object,Object>>。

通常情况下, hash 命令都是以 h 开头的。

基本操作命令:

4、set集合
set⾥的值是不能重复的且没有顺序的存放的,跟Java当中的set集合差不多。

set命令⼀般都使⽤s开头,表示是⼀个set命令。

基本操作命令:


5、zset排序set
有序,不可重复。

ZSet其实是在Set的基础上绑定了⼀个score来实现集合数据按照score排序的集合;有序集合和集合一样,也是string类型的元素集合,且不可以重复。

每⼀个元素都会关联⼀个double类型的Score.redis通过score为集合中的成员进行从小到大排的。

基本操作命令:

三、Redis存储

1、redis 使用两种文件格式

两种文件格式为:全量数据和增量请求

全量数据格式是把内存中的数据写入磁盘,便于下次读取文件进行加载。

增量请求文件则是把内存中的数据序列化为操作请求,用于读取文件进行 replay 得到数据,序列化的操作包括 SET、 RPUSH、 SADD、 ZADD。

2、redis 的存储方式

分为内存存储、磁盘存储和 log 文件三部分,配置文件中有三个参数对其进行配置。

(1)save参数,seconds updates

 save 配置,指出在多长时间内,有多少次更新操作,就将数据同步到数据文件。这个可以多个条件配合,比如默认配置文件中的设置,就设置了三个条件。

(2)appendonly参数,yes/no

appendonly 配置指出是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面的 save 条件来同步的,所以有的数据会在一段时间内只存在于内存中。

(3)appendfsync参数,no/always/everysec

 appendfsync配置,no 表示等操作系统进行数据缓存同步到磁盘,always 表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次。

四、Redis安装与配置

1、安装 gcc

[root@corday]# yum -y install gcc

2、安装 tcl

[root@corday]# yum install -y tcl

或编译安装:

[root@corday]#  wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
[root@corday]#  tar zxvf tcl8.6.1-src.tar.gz
[root@corday]#  cd tcl8.6.1/unix/
[root@corday]#  ./configure && make && make install

3、安装 redis

[root@corday]#  wget http://download.redis.io/redis-stable.tar.gz
[root@corday]#  cd redis-stable

由于 makefile 文件已经写好,我们只需要直接在源码目录执行 make 命令进行编译即可:
 

[root@corday redis-5.0.14]# make

make 命令执行完成后,会在当前目录 src 下生成本个可执行文件,分别是 redis-server、
redis-cli、 redis-benchmark、 redis-stat,它们的作用如下:
redis-server: Redis 服务器的 daemon 启动程序
redis-cli: Redis 命令行操作工具。当然,你也可以用 telnet 根据其纯文本协议来操作
redis-benchmark: Redis 性能测试工具,测试 Redis 在你的系统及你的配置下的读写性能
redis-stat: Redis 状态检测工具,可以检测 Redis 当前状态参数及延迟状况。

4、建立相关redis目录
建立一些相关目录,并将相关文件拷贝至目录中,统一管理redis的资源。

[root@corday redis-stable]# mkdir -p /usr/local/redis/{bin,etc,var}

[root@corday redis-stable]# cp src/{redis-server,redis-cli,redis-benchmark}  /usr/local/redis/bin/

[root@corday redis-stable]# cp redis.conf /usr/local/redis/etc/

成功安装 redis 后,直接执行 redis-server 即可运行 Redis,此时它是按照默认配置来运行的。

如果让redis按要求运行,可以修改redis.config配置文件, 就是上面第二个 cp 操作redis.conf 文件,已拷贝到了/usr/local/redis/etc/目录下,我们可以修改它的配置。

5、Linux中配置redis

[root@corday ~]# vi  /usr/local/redis/etc/redis.conf

配置内容如下: 

daemonize yes
pidfile /usr/local/redis/var/redis.pid
port 6379
timeout 300
loglevel debug
logfile /usr/local/redis/var/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /usr/local/redis/var/
appendonly no
appendfsync always

参数说明:

aemonize:是否以后台 daemon 方式运行
pidfile: pid 文件位置
port:监听的端口号
bind <IP>: 绑定的主机地址
timeout:请求超时时间, 如果指定为 0,表示关闭该功能
loglevel: log 信息级别
logfile: log 文件位置
databases:开启数据库的数量
save * *:保存快照的频率,第一个*表示多长时间,第二个*表示执行多少次写操作。在一
定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
  其中:
  save <seconds> <changes>
  Redis 默认配置文件中提供了三个条件:
  save 900 1
  save 300 10
  save 60 10000
  分别表示 900 秒(15 分钟)内有 1 个更改, 300 秒(5 分钟)内有 10 个更改以及 60 秒
  内有 10000 个更改
rdbcompression:是否使用压缩, Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭
该选项,但会导致数据库文件变的巨大。
dbfilename:数据快照文件名(只是文件名,不包括目录)
dir:数据快照的保存目录(这个是目录)
appendonly:是否开启 appendonlylog,开启的话每次写操作会记一条 log,这会提高数据
抗风险能力,但影响效率。
appendfsync: appendonlylog 如何同步到磁盘(三个选项,分别是每次写都强制调用 fsync、每秒启用一次 fsync、不调用 fsync 等待系统自己同步),有下来三个可选值:
  no:表示等操作系统进行数据缓存同步到磁盘(快)
  always:表示每次更新操作后手动调用 fsync()将数据写到磁盘(慢,安全)
  everysec:表示每秒同步一次(折衷,默认值)

6、启动 redis服务端

# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

效果如下:

7、设置redis按自定义方式启动
[root@corday ~]# vi  /etc/rc.d/rc.local

/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

8、测试 redis客户端

[root@corday]# /usr/local/redis/bin/redis-cli -p  6379
127.0.0.1:6379> set  key_one  hello.lansaipu.com
OK
127.0.0.1:6379> get key_one
"hello.lansaipu.com"
127.0.0.1:6379>

9、关闭redis服务

[root@corday]# /usr/local/redis/bin/redis-cli shutdown

或在命令行执行shutdown:

redis 127.0.0.1:6379> shutdown

redis 服务关闭后,缓存数据会自动 dump备份到硬盘上,硬盘地址为 redis.conf 中的配置项dbfilename   dump.rdb 所设定,强制备份数据到磁盘上,命令如下:

[root@corday]# /usr/local/redis/bin/redis-cli  save

更多精彩内容请关注本站!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值