Redis的安装及详解

1.Redis介绍?

1.1 Redis是什么?

Redis(Remote Dictionary Server,远程字典服务器)是一个开源免费的,用C语言编写的一个高性能的分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库。是当前最热门的NoSql服务器之一,也被人们成为数据结构服务器(redis的所有功能就是将数据以其固有的几种结构保存,并提供给用户操作这几种结构的接口)。

1.2 Redis的特点

  • Redis支持数据的持久化,可以将内存中的数据保存到磁盘中,重启时候可以再此加载进行使用。
  • Redis是一个key-value存储系统。它的value类型除String以为,还支持list(链表)、set(集合)、hash(哈希散列)和zset(有序集合)几种数据类型。
  • Redis支持数据备份,即master-slave模式的备份。

1.3 Redis能干什么?

Redis主要是用来做缓存的,但不是仅仅只能做缓存。

  • 缓存(内存的存储和持久化)使用最多
    数据查询、新闻内容、商品内容等等
  • Session共享
    分布式集群架构中的session分离。
  • 定时器和计数器
    网站访问统计和应用排行榜。
  • 任务队列
    秒杀、抢购、12306等等
  • 获取最新N个数据的操作。
    可以将最新10条评论的id放在redis的list集合中。
  • 发布、订阅信息系统(充当消息中间件)

2.下载及安装

2.1 下载

2.1.1 登录Redis的官网

https://redis.io/
http://www.redis.cn/

2.1.2 点击上图链接,进行下载

2.2 安装

2.2.1 安装前的准备工作

redis是C语言开发,建议在linux上运行,本教程使用Centos7作为安装环境。

安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc,联网执行如下命令

linux 复制代码
yum install gcc-c++

2.2.2 上传下载好的redis-5.0.5.tar.gz到linux中

我们放到/usr/local/temp文件夹下。

2.2.3 解压源码

linux 复制代码
tar -zxvf redis-5.0.5.tar.gz

2.2.4 进入解压后的目录编译

linux 复制代码
cd /usr/local/redis-5.0.5 
make 

如果第一次make出现由于gcc没安装导致的错误。

第二次make时需要执行如下命令 make distclean

然后再make

2.2.5 进入解压后目录安装redis到指定目录

如 /usr/local/redis

linux 复制代码
cd /usr/local/redis-5.0.5 
make PREFIX=/usr/local/redis install

2.2.6 redis启动

  • 前端模式启动
    直接运行bin/redis-server将以前端模式启动,前端模式启动的缺点是ssh命令窗口关闭则redis-server程序结束,不推荐使用此方法。
  • 后台模式启动
    找到配置文件redis.conf,redis.conf在redis源码目录。
    拷贝配置文件到安装目录的bin目录下
linux 复制代码
cp /usr/local/redis-5.0.5/redis.conf  /usr/local/redis/bin

修改bin目录下redis.conf配置文件, daemonize为 yes 。

启动时,加上redis.conf

linux 复制代码
cd /usr/local/redis/bin
./redis-server redis.conf

2.2.7查看redis状态

linux 复制代码
ps aux|grep redis

执行完该命令,如果是显示一行,则没有启动redis。如果是多行这代表redis服务已经启动。

2.2.8关闭redis服务

linux 复制代码
 redis-cli -p redis 端口号 shutdown

3 Redis基础知识介绍

  • Redis默认安装16个库
  • 通过select+数据库下表[从零开始]切换库
linux 复制代码
select 4
  • 通过dbsize命令可以查看数据库key的个数。
linux 复制代码
dbsize
  • 通过keys命令可以查看数据库中的key值
x 复制代码
keys * 
  • 通过FLUSHDB命令清空当前库。
  • 通过FLUSHALL命令清空所有库。
  • redis默认端口:6379

4 Redis常用的五大数据类型

  • String(字符串)
    String是redis最基本的类型。
    String类型是二进制安全的,redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。一个redis中字符串value最多可以是512M
  • Hash(哈希)
    Redis的hash 是一个键值对集合。
    Redis的hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
    类似Java里面的Map<String,Object>
  • List(列表)
    Redis 列表是简单的字符串列表,按照插入顺序排序。它的底层实际是个链表
  • Set(集合)Redis的Set是string类型的无序集合。它是通过HashTable实现的。
  • zset(sorted set:有序集合)
    Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
    不同的是每个元素都会关联一个double类型的分数。
    redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

5 Redis配置文件详解

5.1 在哪里?

在redis源码解压后的目录中。名字叫:redis.conf

5.2 为什么我们在linux中大多数配置文件,要拷贝一份运行?

避免我们把原始的配置改乱,而无法恢复。

5.3 redis.conf组成

5.3.1Units单位

  • 大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit
  • 对大小写不敏感

5.3.2 INCLUDES包含

和我们的struts2配置文件类似,可以通过includes包含,redis.conf可以作为总闸,包含其他redis的配置。

5.3.3 GENERAL 配置

5.3.3.1 Redis配置设置
  • CONFIG 命令查看配置项
x 复制代码
127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME

示例:

x 复制代码
127.0.0.1:6379> CONFIG GET loglevel
1)"loglevel"
2) "notice"
  • CONFIG 命令设置配置项
x 复制代码
127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE

示例

x 复制代码
127.0.0.1:6379> CONFIG SET loglevel "notice"
OK
127.0.0.1:6379> CONFIG GET loglevel
1)"loglevel"
2)"notice"

可以修改redis.conf来设置配置项

5.3.3.2 daemonize(守护进程)

Redis 默认不是以守护进程的方式运行,可以通过该配置项修改,使用 yes 启用守护进程(Windows 不支持守护线程的配置为 no )

5.3.3.3 pidfile

当 Redis 以守护进程方式运行时,redis会生成一个pid文件,默认会生成在/var/run/redis.pid。当然,你可以通过pidfile来指定pid文件生成的位置

5.3.3.4 port

指定 Redis 监听端口,默认端口为 6379,作者在自己的一篇博文中解释了为什么选用 6379 作为默认端口,因为 6379 在手机按键上 MERZ 对应的号码,而 MERZ 取自意大利歌女 Alessia Merz 的名字

5.3.3.5 tcp-backlog

默认值:511。

设置tcp的backlog,backlog其实是一个连接队列,backlog队列总和=未完成三次握手队列 + 已经完成三次握手队列。目前而言,我们使用默认值,足够使用。

5.3.3.6 timeout

当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能。设置为0:表示连接一直连着不关闭。

5.3.3.7 bind

绑定的主机地址

5.3.3.8 tcp-keepalive

单位为秒,如果设置为0,则不会进行Keepalive检测,建议设置成60。表示60秒进行一次tcp连接检测。

5.3.3.9 loglevel

指定日志记录级别,Redis 总共支持四个级别:debug、verbose、notice、warning,默认为 notice。

5.3.3.10 logfile

日志记录方式,默认为标准输出,如果配置 Redis 为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给 /dev/null

5.3.3.11 databases

设置数据库的数量,默认redis安装有16个库,默认当前数据库为0号库,可以使用SELECT 命令在连接上指定数据库id

相关推荐
Jay_fearless23 分钟前
Redis SpringBoot项目学习
spring boot·redis
Wang's Blog33 分钟前
Redis: 集群环境搭建,集群状态检查,分析主从日志,查看集群信息
数据库·redis
容器( ु⁎ᴗ_ᴗ⁎)ु.。oO1 小时前
MySQL事务
数据库·mysql
cyt涛3 小时前
MyBatis 学习总结
数据库·sql·学习·mysql·mybatis·jdbc·lombok
Rookie也要加油3 小时前
01_SQLite
数据库·sqlite
liuxin334455663 小时前
教育技术革新:SpringBoot在线教育系统开发
数据库·spring boot·后端
看山还是山,看水还是。4 小时前
MySQL 管理
数据库·笔记·mysql·adb
fishmemory7sec4 小时前
Koa2项目实战2(路由管理、项目结构优化)
数据库·mongodb·koa
momo小菜pa4 小时前
【MySQL 09】表的内外连接
数据库·mysql
Jasonakeke4 小时前
【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化
数据库·mysql