官网链接:http://www.redis.io
视频:Redis 6 尚硅谷
笔记全部来自于b站尚硅谷的Redis课程,可以配合是视频来享用~~
🚨🚨先说明,做下面操作,如果是服务器的话,修改端口6379为公开、不设置redis密码这些操作都是很危险的!!!
一定要设置密码,可以改端口号,只要不是6379都行,然后也不要公开,就设置自己本机的ip即可,我下面没有做更改。
血的教训,我就被攻击了,可参考: 挖矿?入侵?木马?都是redis没设密码搞的鬼
1 - Jedis所需要的jar包
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.2.0</version>
</dependency>
2 - 连接Redis注意事项
禁用Linux的防火墙:Linux(CentOS7)里执行命令
查看状态: systemctl status firewalld
关闭: systemctl stop firewalld
redis.conf中注释掉bind 127.0.0.1 ,然后 protected-mode no
3 - Jedis连接测试
package com.dabing.jedis;
import org.junit.Test;
import redis.clients.jedis.Jedis;
public class Demo01 {
/**
* 测试连接Redis服务
* 能连接上的前提:
* 1. 关闭linux的防火墙
* 2. 修改Redis的配置文件
* 2.1 将bind 127.0.0.1 注释掉
* 2.2 将保护模式关闭,即protected-mode的值设置为no
*/
@Test
public void connectionTest(){
Jedis jedis = new Jedis("192.168.22.3",6379); //这个主机我瞎写的,写自己的
String pong = jedis.ping();
System.out.println("连接成功:"+pong);
jedis.close();
}
}
4 - 测试相关数据类型
7.4.1. Jedis-API: Key
jedis.set("k1", "v1");
jedis.set("k2", "v2");
jedis.set("k3", "v3");
Set<String> keys = jedis.keys("*");
System.out.println(keys.size());
for (String key : keys) {
System.out.println(key);
}
System.out.println(jedis.exists("k1"));
System.out.println(jedis.ttl("k1"));
System.out.println(jedis.get("k1"));
7.4.2. Jedis-API: String
jedis.mset("str1","v1","str2","v2","str3","v3");
System.out.println(jedis.mget("str1","str2","str3"));
7.4.3. Jedis-API: List
List<String> list = jedis.lrange("mylist",0,-1);
for (String element : list) {
System.out.println(element);
}
7.4.4. Jedis-API: set
jedis.sadd("orders", "order01");
jedis.sadd("orders", "order02");
jedis.sadd("orders", "order03");
jedis.sadd("orders", "order04");
Set<String> smembers = jedis.smembers("orders");
for (String order : smembers) {
System.out.println(order);
}
jedis.srem("orders", "order02");
7.4.5. Jedis-API: hash
jedis.hset("hash1","userName","lisi");
System.out.println(jedis.hget("hash1","userName"));
Map<String,String> map = new HashMap<String,String>();
map.put("telphone","13810169999");
map.put("address","atguigu");
map.put("email","abc@163.com");
jedis.hmset("hash2",map);
List<String> result = jedis.hmget("hash2", "telphone","email");
for (String element : result) {
System.out.println(element);
}
7.4.6. Jedis-API: zset
jedis.zadd("zset01", 100d, "z3");
jedis.zadd("zset01", 90d, "l4");
jedis.zadd("zset01", 80d, "w5");
jedis.zadd("zset01", 70d, "z6");
Set<String> zrange = jedis.zrange("zset01", 0, -1);
for (String e : zrange) {
System.out.println(e);
}
5- 我滴实操
- 写test跟上边的一样,呐,连接超时
- 关防火墙、改保护模式为no、注释掉bind 127.0.0.1
1、firewalld的基本使用
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
2. vi redis.conf
3. 启动redis-server
注:我这里完成了以上两步之后,还是没有连接成功,百度之后发现原来是由于我连接的是服务器,没有添加6379端口的安全组。
可参考:Java使用Jedis 在本地远程连接腾讯云服务器(CentOS 7)
但是我的是轻量级服务器,看意思就是防火墙设置了:
再来测试一次:成功!
接下来就是测试那些数据了。跟上边的来就行。