Redis的简单配置与使用

一、认识Redis

1、NoSQL概述
认识Redis之前应该先了解下NoSQL

(1)NoSQL=Not only SQL(是读“N”“o”SQL,而不是”NO”SQL),是一种非关系型数据库。

(2)为什么需要用到NoSQL?

  • High Performance:高并发读写
  • High Storage: 高效率的数据存储与访问
  • High Scalability && High Availability :高扩展性与高可用性

(3)NoSQL的产品:CouchDB、HBaseRedismongoDB……

(4)NoSQL数据库的四大分类:

  • 键值存储:典型的为Redis,但是数据缺少结构化
  • 列存储:HBase、Riak等
  • 文档数据库:mongoDB,查询效率低
  • 图形数据库:InfoGrid、Neo4j,是图结构

2、Redis概述

(1)Redis是由C语言开发的开源高效能的键值对数据库,提供了很多的数据类型(字符串、列表、散列、有序集合、集合类型)。

(2)应用场景

  • 数据缓存
  • 任务队列(秒杀、抢购等现实应用)
  • 数据过期处理
  • 网站访问统计
  • 分布式cluster集群架构中session分离

二、Redis安装与配置

1、准备工作

  • 搭建环境:VMWare虚拟机+CentOS的Linux系统(建议Redis搭建在Linux服务器中)
  • SSH客户端:Secure CRT
  • 上传服务器文件客户端:FileZilla
  • CentOS需要gcc环境:编译Redis C语言的源文件的环境

2、安装过程

这是需要已经安装好了虚拟机,并且能成功装上能够CentOS,能够与本机Windos分享网络,即CentOS能联网。但是这里介绍的是断网下的Redis安装。

(1)下载redis压缩包官网Download Redis:redis-xxx.tar.gz
选择稳定Stable版本
这里写图片描述

(2)CentOS配置Redis

1、首先查看CentOS服务器主机的IP地址,用来连接服务器。输入命令:ip add

这里写图片描述
得到IP地址192.168.42.128
接下来登录服务器传文件。利用FileZilla上传Redis压缩包到root目录下:打开FileZilla

这里写图片描述

这里写图片描述

2、 连接服务器192.168.42.128,输入Linux服务器登录帐号与密码

这里写图片描述
登录之后输入解压tar压缩包命令

tar zxvf redis-4.0.2.tar.gz

之后可以在root目录下查看解压后的文件redis-4.0.2
这里写图片描述
输入命令进入redis-4.0.2目录下并编译make

cd redis-4.0.2/
make

之后继续在该目录下输入命令安装,将安装的文件放到目录/usr/local/redis下

make install PREFIX=/usr/local/redis

3、修改redis.conf配置文件:进入目录/usr/local/redis/bin

cd /usr/local/redis/bin

然后修改redis.conf文件,先将redis.conf配置文件copy到目录/usr/local/redis下

cd redis-4.0.2/
cp redis.conf /usr/local/redis

之后进入/usr/local/redis目录下修改conf

cd /usr/local/redis
vi redis.conf

进入vim 修改redis.conf中的参数,daemonize参数为yes –>按Esc->冒号:wq–>保存退出
这里写图片描述

4、启动redis服务器
进入bin目录

cd /usr/local/redis/bin  

加载配置文件启动redis服务器

./redis-server  redis.conf

之后查看redis是否启动成功

ps aux|grep redis  

出现如下的信息就说明redis启动成功了
这里写图片描述
其中4281是我的redis服务器进程号,6379是默认的端口号

5、启动redis客户端,测试redis

进入bin目录

cd /usr/local/redis/bin  

启动客户端

./redis-cli  

就会出现127.0.0.1:6379,之后测试redis功能:

这里写图片描述

三、Jedis:Java环境下连接Redis

1、下载两个jar包:我用的Eclipse+Maven
关于具体的Maven如何导包可以参考Maven下导入jar包的几种方式
这里写图片描述

2、编写代码

(1)单实例的测试

public class JedisDemo {

    /**
     * 第一种简单的方式: 单实例的测试
     * @author Lijian
     */
    @Test
    public void test1(){

        //1、设置IP地址与端口
        Jedis jedis = new Jedis("192.168.42.128",6379);
        //2、保存数据
        jedis.set("name","Lijian");
        //3、获取数据
        System.out.println( jedis.get("name")); 
        //4、关闭资源
        jedis.close();

    }


}

最后测试的结果会出错,显示如下所示:连接超时
这里写图片描述
这是因为Linux服务器未对端口6379开放,要进行下面的配置iptables防火墙命令才可以。

vim /etc/sysconfig/iptables

但是Centos6与7都没有iptables。如下图
这里写图片描述

这时候就会需要再进一步设置。
请参考解决CentOS没有iptables的问题,即可解决此问题
这里写图片描述
输入命令

vim /etc/sysconfig/iptables

在插入状态下移动到端口为22(22端口已经开放)的行,然后按yy进行复制,p为粘贴,修改22为6379,或者复制下列语句

-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

这里写图片描述

之后重启iptables.service,设置为开机启动

systemctl restart iptables.service #重启防火墙使配置生效

systemctl enable iptables.service #设置防火墙开机启动

但是最后测试单实例时,仍然出现如下如何的错误

DENIED Redis is running in protected mode because protected mode is enabled........

这是因为redis.conf配置中的protect-mode保护模式为yes,我们可以关掉保护模式为no
进入redis客户端的目录

/usr/local/redis/bin/redis-cli 

开启客户端redis-cli

config set protected-mode "no"

这里写图片描述

最后运行成功

这里写代码片

(2)测试连接池连接方式

    @Test
    public void test2(){
        //1、获得连接池的配置对象
        JedisPoolConfig config = new JedisPoolConfig();
        //2、设置最大连接数:
        config.setMaxTotal(100);
        //3、设置最大空闲连接数
        config.setMaxIdle(100);
        //4、获得连接池
        JedisPool jedisPool = new JedisPool(config, "192.168.42.128",6379);
        //5、获得核心对象
        Jedis jedis =null;
        try{
        //6、通过连接池获得连接
            jedis=jedisPool.getResource();
        //7、设置数据
            jedis.set("student", "Xiaoming");
            String value = jedis.get("student");
            System.out.println(value);
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            if(jedis != null){
                jedis.close();
            }
            if(jedisPool !=null){
                jedisPool.close();
            }

        }


    }

最后运行成功
这里写图片描述

3、配置过程中注意的事项
(1)redis.conf中的bind参数:默认为

bind 127.0.0.1

若改为bind 0.0.0.0,就可以从其他的客户端访问服务器,不光只是本机。

(2)Linux系统默认的防火墙是firewall,而不是iptables

参考资料:

https://www.cnblogs.com/nick-huang/p/5762565.html
http://www.jb51.net/article/101576.htm

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值