Redis-day1-介绍与安装
发布日期:2021-05-10 01:01:23 浏览次数:32 分类:精选文章

本文共 3539 字,大约阅读时间需要 11 分钟。

文章目录

Redis介绍与安装

  • RedisRedis为缓存数据库(中间件),即泛指非关系型数据库 NoSQL(NoSQL = Not Only SQL),NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

  • 关系型数据库(RMDB)mysql,sqlite,oracle,即存在强烈的数据关系),是对不同于传统的关系型数据库的数据库管理系统的统称。

几种企业中常用的缓存数据库对比测试:

image-20210429154035269

image-20210429154110565

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gCY69Ify-1620183268872)(C:%5CUsers%5C%E7%A7%8B%E9%A3%8E%E3%80%81%E4%BA%A6%E5%86%B7%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210429154137944.png)]

image-20210429154156244

测试结果:

  • Memcached:多核的缓存服务,更加适合于多用户并发访问次数(访问次数较少的应用场景)
  • Redis:单核缓存服务,在单节点情况下,更加适合少量用户,多次访问的应用场景

一、简介

Redis:

全称:Remote Dictionary Server

Redis是一个开源的数据结构服务器

支持网络、可持久化日志型数据库

支持多数据类型:字符串、列表、集合、有序集合等

优缺点:

优点:

​ 高性能读写、多数据类型支持、数据持久化、高可用架构、自定义虚拟内存、分布式分片集群、单线程读写性能极高

缺点:

​ 不支持多线程读写,相比Memcached会慢

特性:

透明性:

​ 分布式系统对用户是透明的,让用户无需了解就能使用

扩展性:

​ 这也是分布式系统最大的特点,它能根据需求的增加而扩展

横向扩展:使集群整体性能得到线性提升

纵向扩展:扩展单台服务器的性能使集群性能得到提升

可靠性:

​ 分布式系统不允许单点失效的问题存在,若一台服务器挂了,其他服务器可接替工作,具有持续服务的特性

高性能:

​ 分布式设计分布式系统的一个初衷,透明、灵活、且可靠

二、安装

1.编译安装

# 下载Redis安装包并解压[root@k8s-master1 ~]# wget https://download.redis.io/releases/redis-6.0.9.tar.gz[root@k8s-master1 ~]# tar -xf redis-6.0.9.tar.gz [root@k8s-master1 ~]# cd redis-6.0.9# 安装编译工具依赖包,两个yum不要合在一起安装,会报错[root@k8s-master1 redis]# yum -y install centos-release-scl [root@k8s-master1 redis]# yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils# 编译安装[root@k8s-master1 redis]# scl enable devtoolset-9 bash[root@k8s-master1 redis]# make -j[root@k8s-master1 redis]# make PREFIX=/usr/local/redis install# 启动Redis[root@k8s-master1 redis]# /usr/local/redis/bin/redis-server

2.容器安装

1)创建部署清单

kind: DeploymentapiVersion: apps/v1metadata:  name: redis-deploymentspec:  selector:    matchLabels:      app: redis      deploy: redis  template:    metadata:      labels:        app: redis        deploy: redis    spec:      containers:        - name: redis          image: redis:6.0.9

2)创建Service

kind: ServiceapiVersion: v1metadata:  name: redis-deployment-svcspec:  ports:    - port: 6379      targetPort: 6379      name: redis      protocol: TCP  selector:    app: redis    deploy: redis  type: NodePort

3.使用systemctl管理redis

1)编写System管理文件

cat > /usr/lib/systemd/system/redis.service << EOF[Unit]Description=RedisAfter=network.target [Service]Type=forkingPIDFile=/var/run/redis_6379.pid    ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.confExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=true [Install]WantedBy=multi-user.targetEOF

2)启动

# 重载配置[root@k8s-master1 ~]# systemctl daemon-reload# 先手动启动一下,再用systemctl启动,否则直接用systemctl会卡主[root@k8s-master1 ~]# /usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf[root@k8s-master1 ~]# pkill -9 redis# systemctl启动redis[root@k8s-master1 ~]# systemctl start redis

3)添加到环境变量

方式一:推荐# Redisexport PATH=$PATH:/usr/local/redis/bin方式二:# Redisexport REDIS_HOME=/usr/local/redisPATH=$PATH:$REDIS_HOME/bin

4.设置redis密码

# 修改配置文件[root@k8s-master1 ~]# vim /usr/local/redis/bin/redis.confrequirepass 123# 重启redis[root@k8s-master1 ~]# systemctl restart redis

5.测试登录

# 此时定义值是失败的,需要验证密码才可以[root@k8s-master1 ~]# redis-cli 127.0.0.1:6379> set a b(error) NOAUTH Authentication required.登录后定义值即可成功# 登录方式1:简单,但密码会暴露在终端[root@k8s-master1 ~]# redis-cli -a 123127.0.0.1:6379> set a bOK# 登录方式2:[root@k8s-master1 ~]# redis-cli 127.0.0.1:6379> auth 123OK127.0.0.1:6379> set a bOK

6.解决中文乱码的问题

# 定义一个中文值,获取时会乱码(英文无碍)127.0.0.1:6379> set name 张三OK127.0.0.1:6379> get name"\xe5\xbc\xa0\xe4\xb8\x89"# 解决乱码,需在登录时就加入 --raw选项[root@k8s-master1 ~]# redis-cli --raw127.0.0.1:6379> auth 123OK127.0.0.1:6379> get name张三
上一篇:Redis-day2-五种数据结构类型与数据持久化AOF+RDB
下一篇:Promethus-day5-配置文件详解+AlertManager微信邮件告警配置

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月11日 03时48分57秒