Redis 安装以及一些说明(一)

一、常识介绍


1. 数据是存在磁盘中的

有两个指标

  1. 寻址:速度是ms
  2. 带宽:G/M

2. 内存

  1. 寻址:ns
  2. 带宽:很大
    秒>毫秒>微秒>纳秒 磁盘比内存寻址的速度慢10W倍

3. 成本问题I/O buffer

磁盘和磁道,扇区,一个扇区512Byte带来一个成本变大:索引
格式化磁盘有个4K对齐
操作系统,无论读取多少,都是最少从4K拿

二、数据存储发展进程


1. 文件里数据

data.txt

linux读取grep awk
java 通过流进行读取

随着文件变大,速度变慢
为什么
磁盘的I/O成为了瓶颈

2. 数据库出现

  • data page 大小为4K
  • 由多个data page组成
    建表不建立索引,速度不变
  • 索引就是拿着一个列的数据放到一个data page里,当数据量大时索引也会增多
  • 表和索引都是存在磁盘中的

关系型数据库建表:必须给出schema(给出表的有多少个列,列的类型是什么)
类型:字节宽度
存:倾向于行级存储(空的拿0占位,有个好处更新时不用移动位置)

查询的时候带有where其中字段带有索引,在内存中有树干,在通过树干找到树叶(索引),索引读到内存找到对应的表中某个data page数据

数据库:表很大,性能下降?
如果有索引
更新数据变慢
查询速度

  1. 1个或者少量会很快
  2. 当并发量变大受硬盘带宽影响

出现一个内存级别的关系型数据库SAP HANA
数据在磁盘和内存的体积不一样(贵)

2个基础设施(无法解决速度慢)
1、冯诺依曼体系的硬件
2、以太网 tcp/ip的网络设备

解决办法

缓存(memcached,redis)

三、数据库引擎介绍


数据库排名

四、redis简单介绍


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安装实操


1. 下载Redis

wget http://download.redis.io/releases/redis-6.0.6.tar.gz

2. 解压压缩包

tar xf redis-6.0.6.tar.gz

3. 进入解压目录

cd redis-6.0.6
安装详细说明请看README.md

4. 开始编译

编译前依次执行以下命令

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile

然后查看gcc版本gcc -v确保gcc版本是9.x
编译Redis
make

5. 运行Redis

cd src
./redis-server

6. 将Redis安装成Service服务

在Redis目录下

6.1将编译后的文件安装到其他目录,与源码分开

make PREFIX=/opt/willis/redis6 install

6.2 配置系统环境

  1. vim /etc/profile
    在文件最后加入以下代码
export REDIS_HOME=/opt/willis/redis6
export PATH=$PATH:$REDIS_HOME/bin
  1. 更新文件 source /etc/profile
  2. 查看环境变量 echo $PATH
    /opt/rh/devtoolset-9/root/usr/bin:/opt/rh/devtoolset-9/root/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/willis/redis6/bin
  3. 存在加粗的内容修改成功

在Redis目录下
cd utils
修改:vim install_server.sh注释中间部分代码

#check for root user
if [ "$(id -u)" -ne 0 ] ; then
        echo "You must run this script as root. Sorry!"
        exit 1
fi

#bail if this system is managed by systemd
#_pid_1_exe="$(readlink -f /proc/1/exe)"
#if [ "${_pid_1_exe##*/}" = systemd ]
#then
#       echo "This systems seems to use systemd."
#       echo "Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!"
#       exit 1
#fi
unset _pid_1_exe

if ! echo $REDIS_PORT | egrep -q '^[0-9]+$' ; then
        _MANUAL_EXECUTION=true

运行脚本:./install_server.sh

This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379] 设置端口号
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf] 配置文件及目录
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log] 日子文件及目录
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379] 数据文件目录
Selected default - /var/lib/redis/6379
Please select the redis executable path [/opt/willis/redis6/bin/redis-server] 可执行文件

只有配置了环境变量才能自动获取到可执行文件,否则需要手动配置
安装到服务后,脚本已经自动启动服务

查看服务启动pid service redis_6379 status
查看运行的Redis ps -fe | grep redis
注意:再次执行./install_server.sh只需要修改端口号就可以启动多个Redis服务

六、redis安装实操总结


  1. cd ~
  2. mkdir soft
  3. cd soft
  4. wget http://download.redis.io/releases/redis-6.0.6.tar.gz
  5. tar xf redis....tar.gz
  6. cd redis6.0.6
  7. make
    • yum -y install centos-release-scl
    • yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
    • scl enable devtoolset-9 bash
    • echo “source /opt/rh/devtoolset-9/enable” >> /etc/profile
  8. make
  9. make PREFIX=/opt/willis/redis6 install
  10. vim /etc/profile
    • export REDIS_HOME=/opt/willis/redis6
    • export PATH= P A T H : PATH: PATH:REDIS_HOME/bin
    • source /etc/profile
  11. cd utils
  12. ./install_server.sh (可以执行1-N次)
    • 一个物理机可以有多个Redis(进程),通过port区分
    • 可执行文件就一份在目录,但是内存种可以有多个实例需要各自的配置文件,持久化目录等资源
    • service redis_6379 start/stop/stauts > linux /etc/init.d/*****
    • 脚本自动启动服务
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值