Redis学习笔记之一:Redis的安装以及Redis的初步使用

这篇博客介绍了Redis的基本概念,包括其作为NoSql数据库的角色和常见用途。文章详细阐述了Redis在Linux和Windows下的安装步骤,并讲解了如何使用Java连接Redis。内容涵盖Redis指令操作、配置修改以及解决连接问题的技巧。
摘要由CSDN通过智能技术生成

什么是Redis?    

      Redis作为一个由C语言开发的NoSql数据库,自2009年完成开发以来,受到了广大程序员和许多公司的青睐。 Redis的主要开发者是Salvastore Sanfilippo,在推出LLOOGG系统后对Mysql的性能感到失望,决定重新为LLOOGG定制一个数据库,并于2009开发完成,且同一年将其开源,这就是Redis的由来。(ps:可能这就是大佬吧!)

Redis能干什么?

    Redis最开始的开发原因是替代Mysql,所以可以替换Mysql做数据库存储。当然并不是说明Mysql不行了,实际上现在Mysql速度越来越快了,它仍然是最受欢迎的数据库之一。

     · 用作存储数据库

     · 用作缓存系统

     · 用作队列

Redis的使用

    在Redis里面,都是使用指令进行操作的。关系型数据库使用SQL语言来操纵数据,Redis使用指令来操纵数据,可以说指令对于Redis的作用相当于SQL对于关系型数据库的作用。由于Redis指令太多,这儿就不介绍了,留到后面再详细介绍。

Redis的安装

    · Linux下的安装

        1)、使用wget下载最新的稳定版的Redis,目前最新版


         2)、使用 tar -xzf下载解压后的文件


        3)、进入解压后的目录,键入指令make完成编译

       4)、编译完成后可以执行make install指令将src下编译好的可执行文件复制到/usr/local/bin中,但编译完成后最好先运行make test指令查看是否编译正确。

     5)、切换到src下,执行./redis-server,输出如下表示启动成功


     · Windows下的安装

      windows下安装需要先下载安装包,遗憾的是最开始Redis并不支持Windows操作系统,因为Windows的稳定性鄙视,但后面Windows向Redis提交了一个补丁,所以就支持了,当然你在Redis的官网并找不到Windows的下载链接,需要到Redis的Github上寻找。

      1)、在上述网址选择合适的版本并解压,这儿我下载的是非安装版。

      2)、使用CMD进入到解压目录并执行以下指令进行安装


      3)、运行完成后你可以在Windows服务中看到Redis服务已经安装成功,然后点击启动或者执行下面的指令启动


     4)、执行以下指令打开一个客户端,并通过set指令设置值username,-h表示连接的主机 -p表示端口,Redis的默认端口是6379



    返回OK表示设置成功,好了,现在Redis有一个Key-Value了

使用Java连接Redis

   创建一个maven项目,并加入以下依赖:

<dependencies>
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.9.0</version>
    </dependency>
</dependencies>
    加入依赖后编写以下代码并运行:

package org.yamikaze.redis.test;

import redis.clients.jedis.Jedis;

/**
 * 初次使用redis
 * @author yamikaze
 * @date 2017/10/31
 */
public class FirstLocalTest {


    public static void main(String[] args) {
        /**
         * Redis的默认端口号是6379,这儿连接的是本地安装的Redis服务
         */
        Jedis client = new Jedis("localhost", 6379);
        String key = "username1";
        String value = "yamikaze";
        String setResult = client.set(key, value);
        boolean keyIsExist = client.exists(key);
        //key是否存在于redis中
        System.out.println(keyIsExist);
        String getValue = client.get(key);
        //setResult表示set结果,成功表示OK
        System.out.println(setResult);
        //true, 从redis中取出的值与value相等
        System.out.println(value.equals(getValue));
    }

}
    然后再编写代码测试Linux上的Redis

package org.yamikaze.redis.test;

import redis.clients.jedis.Jedis;

/**
 * 初次使用redis
 * @author yamikaze
 * @date 2017/10/31
 */
public class FirstRemoteTest {


    public static void main(String[] args) {
        Jedis client = new Jedis("hostname");
        String key = "username1";
        String value = "yamikaze";
        String setResult = client.set(key, value);
        boolean keyIsExist = client.exists(key);
        //key是否存在于redis中
        System.out.println(keyIsExist);
        String getValue = client.get(key);
        //setResult表示set结果,成功表示OK
        System.out.println(setResult);
        //true, 从redis中取出的值与value相等
        System.out.println(value.equals(getValue));
    }

}
    这儿要注意的是,如果出现timeout异常,可以做以下操作:

    1)、注释redis.conf配置文件中bind

    不注释掉表示Redis只会监听这个ip地址,注释掉之后表示监听任何地址,不注释以外的ip无法建立连接。

    2)、修改protected-mode


   一定要将这个值修改为no,这个表示当没有使用1)中的bind指令配置地址或者没有配置密码时,会启动保护模式,拦截客户端的请求(可以建立连接,但是不能操作),如果没有bind,且注释了这个属性,那么protected-mode是开启的。        

     3)、如果经过了1)和2)还是timeout,使用指令systemctl stop firewalld关闭防火墙,但实验完毕记得开启。

     4)、如果经过3)还不能连接,使用iptables -F清空规则。 

     5)、如果经过4)还不能连接,使用指令getenforce查看SElinux是否开启,如果开启,使用指令setenforce 0禁用,但测试完毕记得setenforce 1启用。当然如果SELinux是disabled,可以pass这一步。

     6)、如果经过上面5步还不行,再检查一遍连接的ip是否正确,服务端的Redis是否已经启动,端口号是否匹配,如果还不行,GG尴尬

     最后,欢迎各位在底下留言评论指出不足以及错误! _φ(❐_❐✧ 人丑就要多读书

参考资料

    ·《Redis入门指南》

    

    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值