1.什么是redis

redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止redis支持的键值数据类型如下字符串、列表(lists)、集合(sets)、有序集合(sorts sets)、哈希表(hashs)

2.redis的应用场景 

缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用
分布式集群架构中的session分离。
聊天室的在线好友列表。
任务队列。(秒杀、抢购、12306等等) 
应用排行榜。 
网站访问统计。 
数据过期处理(可以精确到毫秒)

3.redis的安装 

下面介绍在CentOS环境下,Redis的安装与部署,redis从3.0版本以后增加了集群功能。  

步骤如下:

  由于Redis是用C语言编写,所以编译时需要gcc,

yum install gcc-c++

  通过官网下载 地址:http://download.redis.io/releases/redis-5.0.0.tar.gz

  或 使用linux wget命令:wget http://download.redis.io/releases/redis-5.0.0.tar.gz

把源码包上传到linux服务器,在上传的目录下进行解压

tar -zxvf redis-5.0..tar.gz

进入解压后的目录进行编译make,指定目录安装make install 如 /usr/local/redis

cd redis-5.0.0/

make (这里进redis-5.0.0/目录下直接make编译就好了)

make install PREFIX=/usr/local/redis   (指定编译路径)

进入安装目录bin下
cd /usr/local/redis/bin
此时的目录结构是这样的

  • redis-benchmark redis性能测试工具
  • redis-check-aof AOF文件修复工具
  • redis-check-rdb RDB文件修复工具
  • redis-cli redis命令行客户端
  • redis.conf redis配置文件
  • redis-sentinal redis集群管理工具
  • redis-server redis服务进程

4.启动Redis

1.前端模式启动

/usr/local/redis/bin/redis-server
或 cd /usr/local/redis/bin 运行 ./redis-server

前端模式启动的缺点是ssh命令窗口关闭则redis-server程序结束,故不推荐使用此方法。

2.后端模式启动

1)从redis的源码目录中复制redis.conf到redis的安装目录bin下。

cp /root/redis-5.0.0/redis.conf /usr/local/redis/bin

2)修改配置文件 (是否后台启动)

vim /usr/local/redis/bin/redis.conf

找到 daemonize  按i 进入编辑模式 把no 改为 yes

按ESC + :wq 保存退出

执行如下命令启动redis:

cd /usr/local/redis/bin

./redis-server ./redis.conf

3.查看是否启动成功

ps aux|grep redis

redis默认端口为 6379,可更改redis.conf文件,修改端口号

5. 关闭redis

强行终止redis进程可能会导致redis持久化数据丢失。

正确停止Redis的方式应该是向Redis发送SHUTDOWN命令,

命令为:

cd /usr/local/redis
./bin/redis-cli shutdown

强行终止redis

pkill redis-server

6.让redis开机自启

方法一:

1) vim /etc/init.d/redis  编写脚本 (输入下面的代码)
# chkconfig: 2345 10 90
# description: Start and Stop redis PATH=/usr/local/bin:/sbin:/usr/bin:/bin REDISPORT=6379 #实际环境而定
EXEC=/usr/local/redis/bin/redis-server #实际环境而定
REDIS_CLI=/usr/local/redis/bin/redis-cli #实际环境而定 PIDFILE=/var/run/redis.pid
CONF="/usr/local/redis/bin/redis.conf" #实际环境而定 case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed."
else
echo "Starting Redis server..."
$EXEC $CONF
fi
if [ "$?"="0" ]
then
echo "Redis is running..."
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE exists, process is not running."
else
PID=$(cat $PIDFILE)
echo "Stopping..."
$REDIS_CLI -p $REDISPORT SHUTDOWN
while [ -x $PIDFILE ]
do
echo "Waiting for Redis to shutdown..."
sleep 1
done
echo "Redis stopped"
fi
;;
restart|force-reload)
${0} stop
${0} start
;;
*)
echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
exit 1
esac

2)  配置开机启动

chmod  /etc/init.d/redis #设置文件redis的权限,让Linux可以执行
chkconfig redis on #开启服务自启动
chkconfig --list #查看所有注册的脚本文件
service redis start #启动
service redis stop #关闭redis

3) 检测是否成功

reboot  #重启--如果是centos6.5学过来的,init 0与init 6一样在centos7适用
ps aux|grep redis #查看redis进程是否存在

方法二:(centos7推荐)

centos 7以上是用Systemd进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度。 
Systemd服务文件以.service结尾,比如现在要建立redis为开机启动,如果用yum install命令安装的,yum命令会自动创建redis.service文件,直接用命令systemcel enable redis.service设置开机启动即可

1.在系统服务目录里创建redis.service文件

vim /etc/systemd/system/redis.service

写入以下内容:

[Unit]
Description=redis-server
After=network.target [Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true [Install]
WantedBy=multi-user.target

注意:ExecStart配置成自己的路径

配置描述:

  Description:描述服务 
  After:描述服务类别 
  [Service]服务运行参数的设置 
  Type=forking是后台运行的形式 
  ExecStart为服务的具体运行命令 
  ExecReload为重启命令 
  ExecStop为停止命令 
  PrivateTmp=True表示给服务分配独立的临时空间 
  注意:[Service]的启动、重启、停止命令全部要求使用绝对路径 
  [Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

重载系统服务:systemctl daemon-reload

2. 测试并加入开机自启

  先关闭redis-server 
  systemctl stop redis.service

  开启redis-server 
  systemctl start redis.service #如果服务是开启状态,使用此命令会启动失败。

3. 开启成功,将服务加入开机自启 
  systemctl enable redis.service #注意后面不能跟空格

4.  reboot #重启

5.  查看服务运行状态:systemctl status redis.service

6. 全部命令

  systemctl start redis.service #启动redis服务 
  systemctl enable redis.service #设置开机自启动 
  systemctl disable redis.service #停止开机自启动 
  systemctl status redis.service #查看服务当前状态 
  systemctl restart redis.service  #重新启动服务 
  systemctl list-units --type=service #查看所有已启动的服务

7.测试代码

引入jar包:

代码:

public class JedisTest {

    @Test
public void testJedisSingle() {
//创建一个jedis的对象。
Jedis jedis = new Jedis("172.20.10.7", 6379);
//调用jedis对象的方法,方法名称和redis的命令一致。
jedis.set("key1", "jedis test");
String str = jedis.get("key1");
System.out.println(str);
//关闭jedis。
jedis.close();
} /**
* 使用连接池
*/
@Test
public void testJedisPool() {
//创建jedis连接池
JedisPool pool = new JedisPool("172.20.10.7", 6379);
//从连接池中获得Jedis对象
Jedis jedis = pool.getResource();
String str = jedis.get("key1");
System.out.println(str);
//关闭jedis对象
jedis.close();
pool.close();
}
}

至此redis安装配置完毕。

good luck !

 
 
 

Linux(Centos7)下redis5安装、部署、开机自启的更多相关文章

  1. Linux(CentOS7)下Nginx安装

    记录一下 Linux(CentOS7) 下 Nginx 安装过程 一.准备工作 版本说明: Linux版本:CentOS 7 64位 Nginx版本:nginx-1.20.0 1. 下载安装文件 采用 ...

  2. Linux(CentOS7)下二进制安装MySQL5.7.26

    记录一下自己在 CentOS7 下二进制安装 MySQL5.7.26 的过程,之前使用 Linux(CentOS7)下rpm安装MySQL8.0.16 之后发现 rpm 方式安装不利于维护,也不利于单 ...

  3. Linux(CentOS7)下rpm安装MySQL8.0.16

    记录一下自己在 CentOS7 下 rpm 安装 MySQL8.0.16 的过程. 一.准备工作 1. 下载MySQL所需要的安装包 从 MySQL官网 下载,上传至 CentOS 系统 /usr/l ...

  4. linux centos7下mysql安装--韩国庆

    首先我先给大家介绍下MariaDB和mysql的区别. 上图,“MySQL之父”的骨灰级程序员Monty,但是mysql被Oracle收购后,Monty又开始去发展另一条数据库的道路,并且以Monty ...

  5. Linux centos7下php安装cphalcon扩展的方法

    说明: 操作系统:CentOS7 php安装目录:/usr/local/php php.ini配置文件路径:/usr/local/php/etc/php.ini 运行环境:LNMP ,PHP7 .安装 ...

  6. linux Centos7 下vsftpd 安装与配 FTP

    一.说明 linux 系统下常用的FTP 是vsftp, 即Very Security File Transfer Protocol. 还有一个是proftp(Profession ftp). 我们这 ...

  7. Linux(Centos7)下redis5缓存服务集群分布式搭建

    注意:可以查看Redis官网查看集群搭建方式,连接如下 https://redis.io/topics/cluster-tutorial 集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器 ...

  8. Linux(Centos7)下redis5集群搭建和使用

    1.简要说明 2018年十月 Redis 发布了稳定版本的 5.0 版本,推出了各种新特性,其中一点是放弃 Ruby的集群方式,改为 使用 C语言编写的 redis-cli的方式,是集群的构建方式复杂 ...

  9. [Linux]centOS7下RPM安装Perl

    1.下载rpm依赖包,依照顺序安装. perl-parent-0.225-244.el7.noarch   perl-HTTP-Tiny-0.033-3.el7.noarch   perl-podla ...

随机推荐

  1. 微服务管理平台nacos虚拟ip负载均衡集群模式搭建

    一.Nacos简介 Nacos是用于微服务管理的平台,其核心功能是服务注册与发现.服务配置管理. Nacos作为服务注册发现组件,可以替换Spring Cloud应用中传统的服务注册于发现组件,如:E ...

  2. iOS libsqlite3.0.tbd和libsqlite3.tbd的区别

    ibsqlite3.0.tbd 只是一个快捷方式,其实也是指向libsqlite3.tbd的,如果libsqlite3.0.tbd指向的就是最新的libsqlite3.tbd,就不用更新了.

  3. 2018 ACM/ICPC 南京 I题 Magic Potion

    题解:最大流板题:增加两个源点,一个汇点.第一个源点到第二个源点连边,权为K,然后第一个源点再连其他点(英雄点)边权各为1,然后英雄和怪物之间按照所给连边(边权为1). 每个怪物连终点,边权为1: 参 ...

  4. 关于直线,V形线,Z形线,M形线分割平面的总结

    一:N条直线分割平面 假设,x条线能将平面分为f(x)份,这对于份f(n) 第n条线,和其他n-1条线都有交点时,增加量最大,为n; 则: f(n)=f(n-1)+n; 有f(0)=1:得到:n 条直 ...

  5. 【关注图像采集视频传输】之 Cy3014 usb3.0 FIFO接口

    CYUSB3014延续了CY7C68013A最吸引人的地方,那就是实现高速数据传输的Slave FIFO接口,应用这种模式,据说数据传输率可以达到320MB/s. 同USB2.0的芯片CY7C6801 ...

  6. 【Taro】363- 玩转 Taro 跨端之 flex 布局篇

    Taro 是一套遵循 React 语法规范的跨平台开发解决方案,但是目前当我们使用 Taro 的时候,在不同平台上的开发体验还有不一致的地方,所以我们也都期待有一套跨平台统一的解决方案,能够以最小差异 ...

  7. HTML真零基础教程

    这是为完全没有接触过的童鞋写的,属于真正的傻瓜式教程,当然由于本人也不是什么大佬,可能有些知识的理解与自己想的不一样,如果有大佬看到,还请帮我指出.以下主要是HTML5的基础标签的使用. 开发前的准备 ...

  8. Java中真的只有值传递么?

    Java中真的只有值传递么? (本文非引战或diss,只是说出自己的理解,欢迎摆正心态观看或探讨) 回顾值传递和引用传递 关于Java是值传递还是引用传递,网上有不一样的说法. 1.基本类型或基本类型 ...

  9. 一 UI基本的用法

    1. UIView的基本用法 //打印屏幕的宽和高 CGRect screenBounds = [[UIScreen mainScreen] bounds]; NSLog(@"%f, %f& ...

  10. Bash脚本编程之数组

    数组简介 在bash脚本编程当中,变量是存储单个元素的内存空间:而数组是存储多个元素的一段连续的内存空间. 数组由数组名和下标构成,如下. ARRAY_NAME[SUBSCRIPT] 数组按照下标的类 ...