
本文共 3539 字,大约阅读时间需要 11 分钟。
文章目录
Redis介绍与安装
-
RedisRedis为缓存数据库(中间件),即泛指非关系型数据库 NoSQL(NoSQL = Not Only SQL),NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
-
关系型数据库(RMDB)mysql,sqlite,oracle,即存在强烈的数据关系),是对不同于传统的关系型数据库的数据库管理系统的统称。
几种企业中常用的缓存数据库对比测试:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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)]
测试结果:
- 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张三
发表评论
最新留言
关于作者
