Redis01 基础及安装

系列文章目录

Redis01 基础及安装
Redis02-架构及简单使用
Redis03-数据类型:应用及实操
Redis04-进阶使用(管道、发布/订阅)
Redis05-进阶使用(事务)
Redis06-进阶使用(过期 expire)
Redis07-RDB和AOF

redis-01 基础及安装

1、背景:为什么需要缓存

小常识1:

磁盘:寻址 ms级,带宽GB / M

内存:寻址 ns级,带宽很大(比磁盘大几个数量级)

磁盘比内存在寻址上慢了10W倍,I/O成为瓶颈

小常识2:

磁盘有磁道和扇区。一扇区512Byte,如果根据一个扇区寻找数据,需要的索引成本会很大

实际上操作系统每次读取最少 4k

问题

1、数据存在磁盘,当磁盘数据变大,I/O成为瓶颈,性能下降,速度变慢。

在查找数据库时,还存在一个问题,那就是字节宽度,在我们建库的时候必须给出schema,在存储时倾向于行级存储,好处:更新时不需要移动数据;坏处:如果列为空,依旧占据存储空间

2、数据存在内存,内存级别的关系型数据库太贵。(SAP公司的HANA数据库,硬件需求大,内存约2T,软硬件服务套餐总价约2亿。)

3、高并发,如果只是数据量变大,单数据的查找依然很快(因为有索引),但是多数据查询时会受很大影响。

折中:缓存

缓存,将一部分数据存在内存中

https://db-engines.com/en/

常见缓存:

  • memcached :k-v 结构,value没有类型的概念
  • redis(秒级十万操作):k-v 结构,value有类型(5种)

2、为什么用Redis

redis官网 https://redis.io/ , http://redis.cn/

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。

Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

redis的优势

redis中的value有类型的概念,memcached没有

客户端如果要取数据,

  • memcached 要返回value所有的数据,且需要自己实现解码
  • redis 对每种类型都有自己的方法,不需要取全量数据

类型不是关键的,关键的是每种类型都有方法,即做到了“计算向数据移动”

3、redis安装

linux常识:

make:在linux中属于编译命令,跟随文件makefile,但是这个命令需要config执行之后才会生成

yum install wget
cd ~
mkdir soft
cd soft
## =============下载redis ====================
wget    http://download.redis.io/releases/redis-5.0.5.tar.gz
tar xf  redis-5.0.5.tar.gz

## cd 到redis的src目录下
## 看README.md

##==============编译========================
make 
## 没有装c编译器   yum install  gcc  
make distclean # 需要把之前的make的残留文件清除
make
cd src   #生成了可执行程序
cd ..

##==============安装=======================
make install PREFIX=/opt/redis5
vi /etc/profile
#在最后追加  
	export  REDIS_HOME=/opt/redis5
	export PATH=$PATH:$REDIS_HOME/bin
source /etc/profile    #重新加载配置

##==============脚本启动======================
cd utils
./install_server.sh    #可以执行一次或多次,按脚本填写配置,自动生成脚本文件在/etc/redis/6379

#    a)  一个物理机中可以有多个redis实例(进程),通过port区分
#    b)  可执行程序就一份在目录,但是内存中未来的多个实例需要各自的配置文件,持久化目录等资源
#    c)  service   redis_6379  start/stop/stauts     >   linux   /etc/init.d/**** 
#    d)  脚本还会帮你启动!
ps -fe |  grep redis  

##===========以后启动redis===============
service redis_6379 start

在这里插入图片描述

可以参考CentOS7 安装Redis

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值