Redis的环境部署与安装

什么是redis

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。
Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
redis的官网地址,非常好记,是redis.io。(域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地),Vmware在资助着redis项目的开发和维护。
redis的官方网网:redis官网
redis的中文官方网站:redis中文官网

redis的优势

读取速度快

环境部署与工具下载

这里通过docker容器进行redis的下载安装,当然下载linux版本的redis安装包也可以

Linux环境部署

虚拟机以及Centos 7的下载

Linux下复制粘贴快捷键

  1. 在终端下:
    复制命令:Ctrl + Shift + C 组合键.
    粘贴命令:Ctrl + Shift + V 组合键.
  2. 在控制台下:
    复制命令:Ctrl + Insert 组合键  或  用鼠标选中即是复制。
    粘贴命令:Shift + Insert 组合键  或  单击鼠标滚轮即为粘贴。

Linux指令

Linux系统下编辑文件内容的方法https://www.cnblogs.com/dan2/p/12604142.html
https://blog.csdn.net/qq_23329167/article/details/83856430

Docker环境部署

centos下docker安装
因为我这里使用的是centos所以就在centos下安装.
参考博客与网站:
https://www.jb51.net/article/161580.htm
https://blog.csdn.net/u014069688/article/details/100532774
https://www.cnblogs.com/jthb/p/5074493.html
https://blog.csdn.net/jsnhux/article/details/89847109
https://docs.docker.com/install/linux/docker-ce/centos/

关于docker的使用指令

https://blog.csdn.net/q610376681/article/details/90483576?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163520527516780255254333%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=163520527516780255254333&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-90483576.first_rank_v2_pc_rank_v29&utm_term=docker&spm=1018.2226.3001.4187

启动Redis并测试

docker exec -it 8ae13ba64ba0 /bin/bash 进入容器
redis-cli 执行客户端命令
https://www.cnblogs.com/ryanwuli/p/13225074.html
在这里插入图片描述

Redis-Benchmark性能测试

官方自带的redis测试工具
在这里插入图片描述
https://www.cnblogs.com/lxs1314/p/8399069.html

  • 因为设置了开机自启动redis 这里直接进入容器 docker exec -it 8ae13ba64ba0 /bin/bash
  • 进行测试 redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 10000
  • 在这里插入图片描述
    在这里插入图片描述
    每秒处理35087.72条请求
    压力测试就是重复的ping Get Set Increate方法等,图中是10000条线程,50次并发

如何去分析压力测试的结果

在这里插入图片描述

Redis基础

https://www.cnblogs.com/934827624-qq-com/p/10175478.html

在这里插入图片描述
因为docker下载的redis默认是没有配置文件的,执行了docker run -p 6378:6379 --name redis01 -v /root/redis/redis01/conf/redis.conf:/etc/redis/redis.conf -v /root/redis/redis01/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes才有了配置文件

  1. -p 6378:6379 容器redis 端口6379 映射 宿主机未6378
  2. –name redis01 容器 名字 为 redis01
  3. -v /root/redis/redis01/conf/redis.conf:/etc/redis/redis.conf 容器 /etc/redis/redis.conf 配置文件 映射宿主机 /root/redis/redis01/conf/redis.conf。 会将宿主机的配置文件复制到docker中。
    在这里插入图片描述
    docker里下载redis.conf里没有内容,需要在官网下载,找到redis.conf 更改几处,复制粘贴过来
    在reids01里的conf文件夹下 创建Dockerfile 拉取redis.conf的镜像
    https://blog.csdn.net/weixin_39806100/article/details/114754806
FROM redis
COPY redis.conf /root/redis/redis01/conf/redis.conf
CMD [ "redis-server", "/root/redis/redis01/conf/redis.conf" ]

在这里插入图片描述

基础知识

  • redis默认有16个数据库(conf能看到 databese 16)默认使用第0个,可以使用select进行切换
[root@localhost conf]# docker exec -it 8ae13ba64ba0 /bin/bash
root@8ae13ba64ba0:/data# select 3
> dbsize
bash: syntax error near unexpected token `dbsize'
root@8ae13ba64ba0:/data# redis-cli
127.0.0.1:6379> select 3
OK
127.0.0.1:6379[3]> dbsize
(integer) 0
127.0.0.1:6379[3]> set name xcw
OK
127.0.0.1:6379[3]> dbsize
(integer) 1
127.0.0.1:6379[3]> select 7
OK
127.0.0.1:6379[7]> dbsize
(integer) 0
127.0.0.1:6379[7]> select 3
OK
127.0.0.1:6379[3]> get name
"xcw"

  • keys * #查看数据库所有的key
  • flushdb #清空当前数据库 flushall #清空全部数据库
  • redis是单线程,官方表示,redis是基于内存操作,CPU不是reids性能瓶颈。redis瓶颈是服务器内存和网络带宽。
  • redis是c语言写的,官方提供的数据为每秒10w+QPS,不比使用key-value的Memechche差
  • redis是吧所有的数据全部放进内存中的 速度:CPU>内存>硬盘

Guess you like

Origin blog.csdn.net/dasgs5a64/article/details/120764344