什么是Redis?

Redis是用C语言开发的一个开源的高性能键值对(key-value)NOSQL 数据库,官方提供测试数据,50个并发执行100000个请求,读的速度是11万次/s,写的速度是8.1万次/s ,且Redis通过提供多种键值数据类型来适应不同场景下的存储需求。

Redis下载

官网下载:https://redis.io/download

(推荐)Github下载https://github.com/redis/redis

Redis的安装

首先 将 redis的.tar 文件上传到服务器中, 进行解压( 提示解压好了 也多等个 10秒)

tar -zxvf 包名
# 或者
unzip 包名

进入解压后的目录中,然后开始配置一下服务器的安装环境

# 尝试安装一下环境吧,大部分 Linux 缺失 gcc-c++ 环境,安装一下,省的安装的时候报错。
yum install gcc-c++

# 1、安装gcc套装
yum install cpp
yum install binutils
yum install glibc
yum install glibc-kernheaders
yum install glibc-common
yum install glibc-devel
yum install gcc
yum install make

# 2、升级gcc
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash

# 安装环境报错,可能不会影响安装Redis。但是还是建议安装一下相关的环境

# 测试编译 要等待一会 CPU 占用较高 并且可能会报错,建议直接复制上传压缩包到服务器,然后服务器自己解压文件
make test

# 清理失败的内容 如果测试成功了,也清理一下。
make distclean

看到这里,就可以继续下一步了,然后 正式编译安装我们的Redis

# 安装Redis
make install

完事了,接下来 就可以启动了

# 启动命令
redis-server redis.conf

# 不限制IP登录。注意一定要有port。其他可省略!!!
redis-server --bind 0.0.0.0 --port 6369 --requirepass 密码

# 或者
redis-server 配置文件

看到6379 就完事了,我们测试一下连接

# 启动redis-cli
redis-cli

# 连接其他Redis服务器
redis-cli -h 127.0.0.1 -p 6379 -a 密码
或者
redis-cli -h 127.0.0.1 -p 6379 --pass 密码

# 测试连接 成功会出现 pong
ping

停止Redis

# 连接Redis客户端
redis-cli

# 输入
shutdown
看到redis服务器说 bye bye 就代表关闭成功了

Redis 配置

当然,我们将来是给Java 客户端连接来使用的,必须允许外网访问,请设置 配置文件,设置完成后,启动时,请指定配置文件。

防火墙放行6379

# 开放TCP 6379 端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent 

# 重启防火墙 使得防火墙生效
firewall-cmd --reload

开启外网访问

redis.conf 注释 68 行 添加 69行的内容

开启密码登录

(可以在启动命令追加 redis-server --requirepass mypassword)

#requirepass foobared 这行 注释删掉 foobared 为密码,设置你自己喜欢的即可。我这里设置123456

然后 重启的时候 记得执行配置文件哦。不然默认是不会执行配置文件的,你设置就无法生效。

redis-server 配置文件位置

例如:
redis-server /home/redis-6.0.10/redis.conf

确定启动后,我们测试一下能不能连接成功

redis-cli -h 127.0.0.1 -p 6379 -a 123456

# 测试连接
ping

也试一下 的Redis Desktop Manager 来测试一下吧 你们的IP肯定不一样,自己切换

搞定!!!

目前为止Redis支持的键值数据类型如下:

  • 1) 字符串类型 string
  • 2) 哈希类型 hash
  • 3) 列表类型 list
  • 4) 集合类型 set
  • 5) 有序集合类型 sortedset
  • 6) 地理位置 geospatial (3.2 就推出了)
  • 7) hyperloglog
  • 8) bitmaps

面试题:Redis为什么快?

  • C语言编写,更接近底层操作
  • redis是基于内存的存储,内存的读写速度非常快;内存带宽 :DDR3 12.8Gb/s、DDR4 2440赫兹 超50Gb/s (来自百度)
  • redis是单线程的,不用加锁、解锁,更不会因为死锁所带来新的问题。省去了很多上下文切换线程的时间;
  • redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间。
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取全部资料 ❤