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

相关推荐
NineData7 分钟前
NineData社区版 V4.6.0 正式发布!SQL 窗口新增4个数据源,新增支持OceanBase等多条数据复制和对比链路
数据库·sql·dba
IT果果日记9 分钟前
给DataX配置加密的方法
大数据·数据库·后端
小白学鸿蒙11 分钟前
鸿蒙数据库表中的数据如何导出为Excel存到系统下载目录
数据库·excel·harmonyos
WKP941823 分钟前
mysql的事务、锁以及MVCC
数据库·mysql
那我掉的头发算什么39 分钟前
【数据库】增删改查 高阶(超级详细)保姆级教学
java·数据库·数据仓库·sql·mysql·性能优化·数据库架构
雨夜赶路人1 小时前
SQL -- GROUP BY 基本语法
数据库·sql
cr7xin1 小时前
缓存查询逻辑及问题解决
数据库·redis·后端·缓存·go
学习编程之路1 小时前
Rust内存对齐与缓存友好设计深度解析
开发语言·缓存·rust
JMzz1 小时前
Rust 中的内存对齐与缓存友好设计:性能优化的隐秘战场 ⚡
java·后端·spring·缓存·性能优化·rust