1. Redis介绍
2. Redis安装
CentOS+VMware下载资源已经提供
链接:https://pan.quark.cn/s/220b85d017e2
3. Redis启动与配置
守护进程方式启动Redis
打开redis配置文件
将daemonize no 改为daemonize yes
这样redis启动以后在后台以服务形式来出现
Redis常用基本配置
4. Redis通用命令
5. 几种Redis常见类型
Set使用示例:
Zset使用示例:
6. Jedis的使用入门
protected-mode yes改为no关闭保护模式。
bind 127.0.0.1 改为0.0.0.0 所有ip主机都可访问进来
设置防火墙,让6379产生的所有数据进行通行
红线为这台centOs的ip
最好重启一下虚拟机,保证这些配置生效。(我就是在这卡了很久,一直找不到问题,最后重启解决的)
package com.imooc.jedis;
import redis.clients.jedis.Jedis;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class JedisTestor {
public static void main(String[] args) {
Jedis jedis = new Jedis("192.168.187.128", 6379);
try {
System.out.println("====" + jedis.ping()); // 如果连接成功,就会输出pong
System.out.println("连接成功");
} catch (Exception e) {
e.printStackTrace();
} finally {
jedis.close();
}
}
}
7. Jedis操作Hash类型
package com.imooc.jedis;
import redis.clients.jedis.Jedis;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class JedisTestor {
public static void main(String[] args) {
Jedis jedis = new Jedis("192.168.187.128", 6379);
try {
System.out.println("=============" + jedis.ping()); // 如果连接成功,就会输出pong
System.out.println("连接成功");
jedis.select(3);
//字符串
jedis.set("sn","7781-9938");
String sn = jedis.get("sn");
System.out.println(sn);
jedis.mset(new String[]{"title","奶粉","num","20"});
List<String> mget = jedis.mget(new String[]{"title", "num"});
System.out.println(mget);
//Hash
jedis.hset("student:3312","name","小明");
String name = jedis.hget("student:3312", "name");
System.out.println(name);
Map<String,String> studentMap = new HashMap<>();
studentMap.put("name","李兰");
studentMap.put("age","18");
studentMap.put("id","3313");
jedis.hmset("student:3313",studentMap);
Map<String, String> stringMap = jedis.hgetAll("student:3313");
System.out.println(stringMap);
} catch (Exception e) {
e.printStackTrace();
} finally {
jedis.close();
}
}
}
8. Jedis操作List类型
//List
jedis.del("letter");
jedis.rpush("letter",new String[]{"d","e","f"});
jedis.lpush("letter",new String[]{"c","b","a"});
jedis.lpop("letter");
jedis.rpop("letter");
List<String> letter = jedis.lrange("letter", 0, -1);
System.out.println(letter);
9. 利用Jedis缓存数据
存进去
package com.imooc.jedis;
import com.alibaba.fastjson.JSON;
import redis.clients.jedis.Jedis;
import java.util.ArrayList;
import java.util.List;
public class CacheSample {
public CacheSample (){
Jedis jedis = new Jedis("192.168.187.128", 6379);
try {
List<Goods> goodsList = new ArrayList<>();
goodsList.add(new Goods(8818,"红富士"," ",3.5f));
goodsList.add(new Goods(8819,"进口橙子"," ",2f));
goodsList.add(new Goods(8820,"大蓝莓"," ",8f));
//在redis中以什么形式保存这些数据呢?在这里都是放在Java中的一个一个二进制对象,以何种方式进行序列化呢?
//使用jason 把这些序列化为jason字符串,要用的时候再进行还原
jedis.select(4);
for (Goods goods : goodsList){
String json = JSON.toJSONString(goods);
System.out.println(json);
String key = "goods:"+goods.getGoodId();
jedis.set(key,json);
}
}catch (Exception e){
e.printStackTrace();
}finally {
jedis.close();
}
}
public static void main(String[] args) {
new CacheSample();
}
}
取出来
package com.imooc.jedis;
import com.alibaba.fastjson.JSON;
import redis.clients.jedis.Jedis;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class CacheSample {
public CacheSample (){
Jedis jedis = new Jedis("192.168.187.128", 6379);
try {
List<Goods> goodsList = new ArrayList<>();
goodsList.add(new Goods(8818,"红富士"," ",3.5f));
goodsList.add(new Goods(8819,"进口橙子"," ",2f));
goodsList.add(new Goods(8820,"大蓝莓"," ",8f));
//在redis中以什么形式保存这些数据呢?在这里都是放在Java中的一个一个二进制对象,以何种方式进行序列化呢?
//使用jason 把这些序列化为jason字符串,要用的时候再进行还原
jedis.select(4);
for (Goods goods : goodsList){
String json = JSON.toJSONString(goods);
System.out.println(json);
String key = "goods:"+goods.getGoodId();
jedis.set(key,json);
}
}catch (Exception e){
e.printStackTrace();
}finally {
jedis.close();
}
}
public static void main(String[] args) {
new CacheSample();
System.out.println("请输入要查询的商品编号:");
String goodsId = new Scanner(System.in).next();
Jedis jedis = new Jedis("192.168.187.128", 6379);
try {
jedis.select(4);
String key = "goods:"+goodsId;
if (jedis.exists(key)){
String json = jedis.get(key);
System.out.println(json);
//将json转换为对象
Goods goods = JSON.parseObject(json, Goods.class);
System.out.println(goods);
}else {
System.out.println("输入的商品编号不存在");
}
}catch (Exception e){
e.printStackTrace();
}finally {
jedis.close();
}
}
}