一、Redis服务器安装(基于阿里云服务器)

因为redis是c语言开发的,在安装Redis的过程中会需要编译,所以服务器需要一个编译工具

1、安装gcc

在centos下面安装gcc,我们使用yum(包管理器)安装,因为gcc依赖了很多东西,而有些包系统可能已经安

装了,有些没有,所以下面的命令最后都执行一遍,在shell中执行下面的命令:
     yum install cpp
     yum install binutils
     yum install glibc-kernheaders
     yum install glibc-common
     yum install glibc-devel
     yum install gcc
     yum install make
2、安装Redis
在这一步中,我们参考官网安装的Redis步骤

$ wget http://download.redis.io/releases/redis-4.0.2.tar.gz
  $ tar xzf redis-4.0.2.tar.gz
  $ cd redis-4.0.2
  $ make
  
启动服务:
之前已经进入redis-4.0.2目录
//后台启动redis服务
src/redis-server &
//查询redis进程
ps -ef | grep redis
//结束进程
kill -9 pid

redis5 安装完成后配置文件_阿里云服务器


初步测试:

之前cd进redis-4.0.2
[root@im5e**am**76**3jbgaz redis-4.0.2]# src/redis-cli

127.0.0.1:6379> set name hello word
OK
127.0.0.1:6379> get name
"hello word"
------------------------华丽的分割线------------------------
这个方法安装的时候把所有的启动项安装到了src下,这里面有很多其它文件,虽然很方便,但是不太友好
plan B
$ wget http://download.redis.io/releases/redis-4.0.2.tar.gz(官网下载tar.gz安装包)
$ tar -zvxf redis-4.0.2.tar.gz
$ mkdir redis(在root路径下创建redis文件夹)
$ cd redis-4.0.2
$ make install PREFIX=/root/redis(把启动项安装到指定到路径下)
$ cp redis.conf /root/redis/bin(在redis-4.0.2目录下找到这个文件)
$ cd redis/bin
$vim reids.conf
/daem (找到daemonize no 改成 yes) 
$./redis-server redis.conf
$./redis-cli

初步测试完成。。。。。。。
3、修改配置文件
在安装完之后可能会稍微对配置上有点个性化需求,这里我只想改一下最大占用内存
redis.conf 在/root/redis-4.0.2 目录下

# limit for maxmemory so that there is some free RAM on the system for slave
# output buffers (but this is not needed if the policy is 'noeviction').
#
# maxmemory <bytes>  在这里的下面加上最大内存,我设定的是500M
maxmemory 524288000

# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory

4、可能出现的问题

redis5 安装完成后配置文件_阿里云服务器_02


性能测试:

./redis-benchmark(/root/redis/bin路径下)

redis5 安装完成后配置文件_redis_03


一个字:快!

二:redis简介

1.什么是redis
“Redis is an open source (BSD licensed),in-memory data structure store, used as a database,cache and message broker.”(官方原话)
Redis是一个开源的,基于内存的数据结构存储,可用作于数据库、缓存、消息中间件。

2.为什么要用缓存

redis5 安装完成后配置文件_缓存_04

redis5 安装完成后配置文件_Redis_05

三: 基本命令介绍

redis5 安装完成后配置文件_redis5 安装完成后配置文件_06


1.存储数据到redis

set key value

取数据

get key

设置key过期时间

expire key timeout 例:expire test 10

Incr key 原子自增1

例:set id 10

Incr id =>id 变成11

decr key 原子自减 [并发减库存]

更多命令可上以下网站查看

http://www.redis.cn/http://doc.redisfans.com/

总结:

string–>简单的key-value

list–>有序列表(底层是双向链表)–>可做简单队列

set–>无序列表(去重)–>提供一系列的交集、并集、差集的命令

hash–>哈希表–>存储结构化数据

sortset–>有序集合映射(member-score)–>排行榜

2.持久化 RDB 和AOF

redis数据都在内存中,为了防止断电数据丢失,所以需要持久化!

RDB(快照)

保存数据到磁盘规则:

save 秒 变化的 key个数

save 900 1 15分钟至少有一个key被改变向磁盘保存一次

save 300 10 5分钟至少10个key被改变向磁盘保存一次

save 60 10000 1分钟至少10000个key被改变要向磁盘保存一次

效率高,但是可能会丢数据。

AOF (文件追加)
产生过一个文件,记录你的所有操作的命令。redis死了,重新执行这个文件。所有redis的数据就会恢复。
效率低,数据完整度高。
3.redis 内置的缓存淘汰策略 LRU(最近最少使用)算法

http://www.redis.cn/topics/lru-cache.html

四:redis的各种问题

1.Redis单线程为什么快?
1)纯内存操作
2)核心是基于非阻塞的IO多路复用机制
3)单线程避免了多线程的频繁上下文切换问题

2.什么是缓存击穿(穿透)?

先看图,了解一下从缓存中加载数据的流程

redis5 安装完成后配置文件_redis5 安装完成后配置文件_07

如果一直查询缓存中不存在的数据,就会造成缓存穿透

redis5 安装完成后配置文件_缓存_08


先写这么点吧

参考资料
1.https://yq.aliyun.com/articles/238783