概述
什么是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学习笔记之一:Redis的安装以及Redis的初步使用的全部内容,希望文章能够帮你解决Redis学习笔记之一:Redis的安装以及Redis的初步使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复