码迷,mamicode.com
首页 > 其他好文 > 详细

Redis基本概念及基本使用

时间:2018-04-15 12:01:56      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:tab   持久化   aof   应用   目录   技术   run   ack   com   

1. Redis基础

1.1 Redis概述

Redis是一个开源、先进的key-value存储,并用于构建高性能、可扩展的应用程序的完美解决方案。

Redis从它的许多竞争继承了三个主要特点:
   ①Redis数据库完全在内存中,使用磁盘仅用于持久性;
   ②相比许多键值对数据存储,Redis拥有一套较为丰富的数据类型;
   ③Redis可以将数据复制到任意数据量的从服务器;

1.2 Redis优势

异常快速:Redis的速度非常快,每秒能执行约11万次set操作,每秒约81000次get操作;

支持丰富的数据类型:Redis支持字符串string、列表list、集合set、有序集合sorted set、散列map数据类型,这使得它非常容易解决各种各样的问题;

操作都是原子性:所有Redis操作都是原子的;

多功能使用工具:Redis是一个多实用的工具,可用于多种用例,如缓存、消息队列(Redis原生支持发布/订阅),应用程序中的任何短期数据,例如:web应用程序中的会话、网页命中计数等;

原子性(atomicity)说明一个事务是一个不可分割的最小工作单位,要么都成功要么都失败。

2. Redis安装部署

2.1 从Redis官网上下载redis源码包,并通过Xftp5上传到机器集群上

下载redis-4.0.9.tar.gz 版本,并通过Xftp5上传到机器集群的第一个节点node1上的/opt/uploads/目录:

技术分享图片

2.2 解压redis-4.0.9.tar.gz,并把解压的安装包移动到/opt/app/目录上

tar zxvf  redis-4.0.9.tar.gz

技术分享图片

技术分享图片

mv redis-4.0.9.tar.gz  /opt/app/  && cd /opt/app/

技术分享图片

2.3 编译Redis源码

编译之前的准备工作

进入Redis目录,cd  /opt/app/redis-4.0.9

技术分享图片

在该目录下创建Redis源码目录source并把/opt/app/redis-4.0.9目录下的所有源码文件移到源码目录source下,之后再创建安装目录redis

mkdir source
# "|"表示下一个表达式从上一个表达式获取结果数据
# "grep -v source"表示反向选择,即找没有source的行
# "xargs -i mv {} /opt/app/redis-4.0.9/source/"中,xargs表示上一个表达式的结果集合作为该表达式的参数,{}表示遍历
ls | grep -v source | xargs -i mv {} /opt/app/redis-4.0.9/source/

技术分享图片

创建redis安装目录

技术分享图片

开始编译

进入redis编译目录source,cd  /opt/app/redis-4.0.9/source

技术分享图片

先安装gcc,再make编译

sudo yum install gcc
make

技术分享图片

把make编译后的可执行文件安装到/opt/app/redis-4.0.9/redis目录下

make PREFIX=/opt/app/redis-4.0.9/redis  install

技术分享图片

在redis安装目录/opt/app/redis-4.0.9/redis  ll查看,可以看到新创建bin目录

 技术分享图片

可以看到bin目录有几个可执行文件

技术分享图片

2.4 修改环境变量(每台机器都要执行),编辑/etc/profile,并生效环境变量,输入如下命令:

sudo vi /etc/profile

添加如下内容:

export REDIS_HOME=/opt/app/redis-4.0.9/redis
export PATH=:$PATH:$REDIS_HOME/bin

技术分享图片

使环境变量生效:source /etc/profile

2.5 Redis部署启动方式

启动方式一:Redis前台默认启动

直接启动Redis服务

技术分享图片

启动方式二:Redis使用配置文件启动:

进入Redis的安装目录,cd  /opt/app/redis-4.0.9/redis

创建conf目录,并将redis的源码目录/opt/app/redis-4.0.9/redis中的redis.conf拷贝到conf目录里:

cp  /opt/app/redis-4.0.9/source/redis.conf  /opt/app/redis-4.0.9/redis/conf/

进入conf目录,修改配置文件redis.conf,有三点需要修改:

技术分享图片

①修改属性  daemonize no -> daemonize yes

技术分享图片

②修改生成默认日志文件位置 

在redis.conf相应的位置添加 logfile "/opt/app/redis-4.0.9/redis/logs/redis.log" 

技术分享图片

在/opt/app/redis-4.0.9/redis/目录下创建logs目录,mkdir logs目录

技术分享图片

③配置持久化文件存放位置

在redis.conf相应的位置添加 dir  /opt/app/redis-4.0.9/redis/data

技术分享图片

在/opt/app/redis-4.0.9/redis/目录下创建data目录,mkdir data目录

技术分享图片

 

启动Redis服务,redis-server  /opt/app/redis-4.0.9/redis/conf/redis.conf

技术分享图片

启动方式三:配置Linux自动启动:

1、准备自启动配置文件redisd

拷贝Redis源码目录source的utils目录下redis_init_script文件到/etc/init.id目录下

sudo cp  /opt/app/redis-4.0.9/source/utils/redis_init_script  /etc/init.d/redisd  (通常都以d结尾表示是后台自启动服务)

技术分享图片

技术分享图片

2、修改自启动配置文件redisd

技术分享图片

redisd原本内容:

REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli
PIDFILE=/var/run/redis.pid
CONF="/usr/local/redis/${REDISPORT}.conf"

将redistask文件内容修改为如下:

REDISPORT=6379
EXEC=/opt/app/redis-4.0.9/redis/bin/redis-server
CLIEXEC=/opt/app/redis-4.0.9/redis/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/opt/app/redis-4.0.9/redis/conf/${REDISPORT}.conf"

技术分享图片

3、准备开机启动的配置文件

cp  /opt/app/redis-4.0.9/redis/conf/redis.conf   /opt/app/redis-4.0.9/redis/conf/6379.conf

技术分享图片

4、设置开机启动

chkconfig  redisd  on

此处直接配置开启自启动chkconfig redisd on 将报错误: service redisd does not support chkconfig 

技术分享图片

在启动脚本redisd开头添加如下两行注释以修改其运行级别:

#!/bin/sh
# chkconfig:   2345 90 10
# description:  Redis is a persistent key-value database
#

技术分享图片

chkconfig redisd on没有权限,则应用sudo去执行,sudo chkconfig redisd on

技术分享图片

开启redisd服务,sudo service redisd start

关闭redisd服务,sudo service redisd stop

注意:开启关闭redisd服务应该用sudo,否则设置的redis_6397.id无法创建,导致能成功开启redisd服务,却不能通过service redisd stop关闭,只能通过kill关闭,如图:

技术分享图片

技术分享图片

正常的应为:

技术分享图片

3. Redis客户端使用

3.1 启动Redis服务并使用客户端访问Redis服务

启动Redis服务

使用上述第五节点任意一种启动方式启动redis服务,在这里,我采用第三种方式启动redis服务

sudo service redisd start

技术分享图片

进入redis安装目录log目录,查看redis.log日志,出现下图则redis正常启动

cd redis-4.0.9/redis/logs/
cat redis.log

技术分享图片

技术分享图片

redis-cli客户端访问Redis服务

 redis-cli

 技术分享图片

查看Redis是否存在

ps aux | grep redis 或 ps -ef | grep redis
netstat -tunlp 6379  或 netstat -nltp 6379

技术分享图片

4. Redis持久化

Redis有两种持久化方案:RDB和AOF

1) RDB方式按照一定的时间间隔对数据集创建基于时间点的快照;

2)AOF方式记录Server收到的写操作到日志文件,在Server重启时通过回收这些写操作来重建数据集。该方式类似于MySQL中基于语句格式的binlog。当日志变大时Redis可在后台重写日志。

4.1 RDB持久化配置

 默认情况下,Redis保存数据集快照到磁盘,名为dump.rdb的二进制文件。可以设置让Redis在N秒内至少有M次数据集改动时保存数据集,或者你也可以手动调用SAVE或者BGSAVE命令。例如,这个配置会让Redis在每个60秒内至少有1000次键改动时自动转储数据集到磁盘。

save 60 1000

4.2 AOF 持久化配置

1)修改redis.config配置文件,找到appendonly。默认是appendonly no。改成appendonly yes;

2)再找到appendfsync。默认是appendfsync everysec
  appendfsync always
  # 每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用
  appendfsync everysec
  #每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐
  appendfsync no
  #完全依赖os,性能最好,持久化没保证

5. Redis数据结构

Redis数据结构有5种,分别是String、Map、List、Set、SortSet这5种。

Redis基本概念及基本使用

标签:tab   持久化   aof   应用   目录   技术   run   ack   com   

原文地址:https://www.cnblogs.com/swordfall/p/8831195.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!