redis的安装与基本介绍

一、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

在这里插入图片描述
初步测试:

之前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、可能出现的问题
在这里插入图片描述
性能测试:
./redis-benchmark(/root/redis/bin路径下)
在这里插入图片描述
一个字:快!

二: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.为什么要用缓存

在这里插入图片描述在这里插入图片描述

三: 基本命令介绍

在这里插入图片描述
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.什么是缓存击穿(穿透)?

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

在这里插入图片描述

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

在这里插入图片描述
先写这么点吧

参考资料
1.https://yq.aliyun.com/articles/238783
2.https://mp.weixin.qq.com/s/XkEK8_OM0OdjpIR2-FkeIQ(公众号:java3y)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值