一、Redis简单介绍

转载于网络

Redis是一个开源(BSD许可)的内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。由于Redis采用运行在内存中的数据集工作方式,其性能卓越,能支持超过100K+每秒的读写频率。它支持多种类型的数据结构,如字符串(strings), 散列(hashes),列表(lists),集合(sets),有序集合(sorted sets)与范围查询和地理空间(geospatial)索引半径查询。Redis内置了复制(replication), LUA脚本(Lua scripting),LRU淘汰机制,事务实现(transactions),发布订阅(publish/subscribe)和不同级别的磁盘持久化(persistence)等能力, 并通过Redis哨兵(Sentinel)和自动分区(Cluster)提供高可用性(high availability)。

Redis的主要功能都是基于单线程网络模型实现,也就是说Redis使用一个线程来服务所有的客户端请求,同时Redis采用了非阻塞式IO,并精细地优化各种命令的算法和时间复杂度,大部分命令的算法都是O(1)的,详细的命令具体可以看 Redis命令参考

另外Redis的大部分操作都是原子性的(简单的单线程模型),同时Redis还支持对几个操作全并后的原子性执行。列如:字符串(strings)的append命令;散列(hashes)的hincrby命令;列表(lists)的lpush命令;集合(sets)计算交集sinter命令,计算并集union命令和计算差集sdiff命令;或者在有序集合(sorted sets)里面获取成员的最高排名zrangebyscore命令等。

官方站点:http://redis.io

二、安装Redis 4.0单实例

1、安装依赖包

  1. [root@VM_2_13_centos redis]# yum install gcc*

2、获取安装文件

  1. [root@VM_2_13_centos redis]# wget http://download.redis.io/releases/redis-4.0.9.tar.gz

3、解压文件

  1. [root@VM_2_13_centos redis]# tar zxvf redis-4.0.9.tar.gz
  2. [root@VM_2_13_centos redis]# ll
  3. total 1708
  4. drwxrwxr-x 6 root root    4096 Mar 27 00:04 redis-4.0.9
  5. -rw-r--r-- 1 root root 1737022 Mar 27 00:04 redis-4.0.9.tar.gz

4、编译安装

  1. [root@VM_2_13_centos redis-4.0.9]# make
  2. [root@VM_2_13_centos redis-4.0.9]# make PREFIX=/usr/local/redis install
  3. cd src && make install
  4. make[1]: Entering directory `/usr/local/redis/redis-4.0.9/src'
  5. CC Makefile.dep
  6. make[1]: Leaving directory `/usr/local/redis/redis-4.0.9/src'
  7. make[1]: Entering directory `/usr/local/redis/redis-4.0.9/src'
  8. Hint: It's a good idea to run 'make test'
  9. INSTALL install
  10. INSTALL install
  11. INSTALL install
  12. INSTALL install
  13. INSTALL install

5、查看redis的版本

  1. [root@VM_2_13_centos ~]# redis-server --version
  2. Redis server v=4.0.9 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=c97ec2b5e9b86914

6、启动redis服务

  1. [root@VM_2_13_centos redis]# /usr/local/redis/bin/redis-server /etc/redis/redis.conf
  2. [root@VM_2_13_centos redis]# netstat -tuplan | grep 6379
  3. tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      5305/redis-server
  4. [root@VM_2_13_centos redis]# ps -ef | grep redis
  5. root      5305     1  0 21:38 ?        00:00:00 /usr/local/redis/bin/redis-server 127.0.0.1:6379
  6. root      5356 30807  0 21:39 pts/1    00:00:00 grep --color=auto redis

7、通过客户端登录

  1. [root@VM_2_13_centos ~]# redis-cli
  2. 127.0.0.1:6379>

备注:如果要卸载redis,把/usr/local/redis/bin/目录下的redis删除即可。为了卸载干净,你还可以把解压和编译的redis包及配置的redis.conf也删除。

三、安全配置

1、设置密码
redis的默认安装是不设置密码的,可以在redis.conf中进行配置

  1. [root@VM_2_13_centos ~]# vim /etc/redis/redis.conf
  2. requirepass qcloud@2018

或者通过命令配置

  1. 127.0.0.1:6379>CONFIG set requirepass qcloud@2018

由于Redis的性能极高,并且输入错误密码后Redis并不会进行主动延迟(考虑到Redis的单线程模型),所以攻击者可以通过穷举法破解Redis的密码(1秒内能够尝试十几万个密码),因此在设置时一定要选择复杂的密码,可以用随机密码生成器生成。

注意:配置Redis复制的时候如果主数据库设置了密码,需要在从数据库的配置文件中通过masterauth参数设置主数据库的密码,以使从数据库连接主数据库时自动使用AUTH命令认证。

验证密码是否有效,是否需要认证

  1. [root@VM_2_13_centos ~]# redis-cli
  2. 127.0.0.1:6379>
  3. 127.0.0.1:6379> keys *
  4. (error) NOAUTH Authentication required.
  5. 127.0.0.1:6379> auth qcloud@2018
  6. OK
  7. 127.0.0.1:6379> keys *
  8. (empty list or set)

2、禁用高危命令
目前该命令可以正常使用

  1. 127.0.0.1:6379> flushall
  2. OK

关闭redis,但是由于上面设置了密码,必须要认证成功后才能关闭

  1. [root@VM_2_13_centos ~]# redis-cli shutdown
  2. (error) NOAUTH Authentication required.
  3. [root@VM_2_13_centos ~]# redis-cli -a qcloud@2018 shutdown
  4. [root@VM_2_13_centos ~]#
  5. [root@VM_2_13_centos ~]# ps -ef | grep redis
  6. root      6144  5406  0 21:54 pts/0    00:00:00 grep --color=auto redis

修改配置文件redis.conf,增加如下行:

  1. [root@VM_2_13_centos ~]# vim /etc/redis/redis.conf
  2. rename-command FLUSHALL ""
  3. rename-command CONFIG   ""
  4. rename-command EVAL     ""

重新启动redis

  1. [root@VM_2_13_centos ~]# redis-server /etc/redis/redis.conf
  2. [root@VM_2_13_centos ~]#
  3. [root@VM_2_13_centos ~]# redis-cli
  4. 127.0.0.1:6379>
  5. 127.0.0.1:6379> keys *
  6. (error) NOAUTH Authentication required.
  7. 127.0.0.1:6379>
  8. 127.0.0.1:6379> auth qcloud@2018
  9. OK
  10. 127.0.0.1:6379>
  11. 127.0.0.1:6379> flushall
  12. (error) ERR unknown command 'flushall'
  13. 127.0.0.1:6379>
  14. 127.0.0.1:6379> config
  15. (error) ERR unknown command 'config'
  16. 127.0.0.1:6379>
  17. 127.0.0.1:6379> eval
  18. (error) ERR unknown command 'eval'

通过上面的报错可以发现,在配置文件禁用的三个命令无法使用

3、绑定只能本机访问

  1. [root@VM_2_13_centos ~]# vim /etc/redis/redis.conf
  2. bind 127.0.0.1

4、设置redis开启自启动

    1. [root@VM_2_13_centos ~]# vim /etc/rc.d/rc.local
    2. /usr/local/redis/bin/redis-server /etc/redis/redis.conf &

安装Redis 4.0单实例的更多相关文章

  1. liunx 安装redis 4.0

    liunx 上安装redis 4.0.1 第一步:将 redis-4.0.1.tar.gz 压缩问上传至/home目录下 第二步: 解压文件  tar -zxvf  redis-4.0.1.tar.g ...

  2. CentOS7.2 安装redis 3.0.6集群

    1.环境确认 a.系统版本查看 [hadoop@p168 ~]$ cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core)  b.安装依 ...

  3. centos / Linux 服务环境下安装 Redis 5.0.3

    原文:centos / Linux 服务环境下安装 Redis 5.0.3 1.首先进入你要安装的目录 cd /usr/local 2.下载目前最新稳定版本 Redis 5.0.3 wget http ...

  4. linux安装 redis(redis-3.0.2.tar.gz) 和 mongodb(mongodb-linux-x86_64-rhel62-4.0.0)

    1:首先 要下载 这两个 压缩包 注意:liunx是否已经安装过 gcc没安装的话 先安装:yum install gcc-c++ 2:安装 redis:redis-3.0.2.tar.gz (1): ...

  5. CentOS 7.3 安装redis 4.0.2服务

    CentOS 7.3 安装redis 4.0.2服务 1.下载解压 下载地址:/home/xiaoming/ wget http://download.redis.io/releases/redis- ...

  6. Linux安装Redis 6.0.5 ./install_server.sh报错

    Linux安装Redis 6.0.5 ./install_server.sh报错 linux 安装Redis6.0.5时 进行到./install_server.sh时报错, This systems ...

  7. Linux 安装Redis 5.0

    结构如下: Redis 官方不建议Redis安装在WINDOWS 服务器上(尤其是生产中分布式事物缓存). linux 下Redis 5.0主从复制(一主二从)哨兵模式的搭建:https://www. ...

  8. RHEL5.6静默安装oracle11.2.0数据库实例脚本

    脚本:单实例静默安装echo '[GENERAL] RESPONSEFILE_VERSION = "11.2.0" //查看虚拟机的版本,不能更改 OPERATION_TYPE = ...

  9. Linux下安装redis 3.0及C语言中客户端实现demo

    1.获取安装文件 wget http://download.redis.io/redis-stable.tar.gz 2.解压文件 tar xzvf redis-stable.tar.gz 3.进入目 ...

随机推荐

  1. 用MyEclipse自带工具生成WebService客户端代码

    本文章主要是介绍如何利用已经发布了的Webservice的wsdl来自动生成java的客户端代码.注意:本方法需要你采用的java版本是1.5或者以上的版本,采用MyEclipse来自动生成代码. w ...

  2. luogu2258

    题面 sol:先爆搜搜出r行,再在那r行中选c列DP得到最优解 我太菜了,这种题都做了好久,还需锻炼码力啊qwq #include <cstdio> #include <cstrin ...

  3. HTC Vive 基础入门 基于Unreal Engine 4引擎

    主要以讲解介绍HTC Vive设备以及Unreal继承的Steam VR Plugin为主 使用最新的虚幻引擎与Plugin完成VR环境的搭建 然后完成一个基本的VR Games. 任务5: 04-配 ...

  4. Spring 使用介绍(二)—— IoC

    一.简单使用:Hello World实例 1.maven添加依赖 <dependency> <groupId>org.springframework</groupId&g ...

  5. Node.js 安装与管理

    一.node安装 Windows下,官网下载 Node.js 安装包,运行安装即可, 安装成功后,可查看版本号 node -v 二.npm npm 是 node 包管理工具,随同node一起安装,安装 ...

  6. JavaScript——JS屏蔽F12和右键

    键盘表 来源:http://www.phpweblog.net/kiyone/archive/2007/04/19/1138.html 通过onkeydowm监听键盘按下事件,并修改键盘码 //禁止F ...

  7. [LightOJ1038] Race to 1 Again

    传送门:>出错啦< 题意:给你一个整数n,每一次可以随机选择一个n的因子x(包括1和它自己),让n除以x——不停重复此过程,直到n==1. 问n被除到1的期望次数. 解题思路: 今天刚学的 ...

  8. 【BZOJ3997】【TJOI2015】组合数学 Dilworth定理 DP

    题目描述 有一个\(n\times m\)的网格图,其中某些格子有财宝,每次从左上角出发,只能向下或右走.问至少走多少次才能将财宝捡完. 此对此问题变形,假设每个格子中有好多财宝,而每一次经过一个格子 ...

  9. 【JSOI2008】火星人prefix 哈希 非旋转treap

    题目大意 就是给你一个字符串,有三种操作,共\(m\)个 \(Q~x~y\):询问第\(x\)个后缀和第\(y\)个后缀的LCP \(R~x~y\):把第\(x\)个字符改成\(y\) \(I~x~y ...

  10. Docker 私有仓库 Harbor registry 安全认证搭建 [Https]

    Harbor源码地址:https://github.com/vmware/harborHarbort特性:基于角色控制用户和仓库都是基于项目进行组织的, 而用户基于项目可以拥有不同的权限.基于镜像的复 ...