import redis.clients.jedis.Jedis;
public class RedisJava {
private static String host = "192.168.1.101";
public static void main(String[] args) {
//isServerRunning();
// set(); //1.保存放键/值对
// setSigleList(); //2.保存List
// getRedisServerAllKeys(); //3.获取所有的key
// setSingleMap(); //4.保存Map
//setObject(); //5.保存序列化的对象
setObjectWithTimeout(); //6.保存序列化的对象并设置超时时间
//setJson(); //
}
private static void isServerRunning(){
//连接本地的 Redis 服务
Jedis jedis = new Jedis(host);
System.out.println("Connection to server sucessfully");
//查看服务是否运行
System.out.println("Server is running: "+jedis.ping());
}
static void set(){
//连接本地的 Redis 服务
Jedis jedis = new Jedis(host);
System.out.println("Connection to server sucessfully");
//设置 redis 字符串数据
jedis.set("w3ckey", "Redis tutorial");
// 获取存储的数据并输出
System.out.println("Stored string in redis:: "+ jedis.get("w3ckey"));
}
static void setSigleList(){
//连接本地的 Redis 服务
Jedis jedis = new Jedis(host);
System.out.println("Connection to server sucessfully");
//存储数据到列表中
jedis.lpush("tutorial-list", "Redis");
jedis.lpush("tutorial-list", "Mongodb");
jedis.lpush("tutorial-list", "Mysql");
jedis.lpush("tutorial-list", "Mysql2");
jedis.lpush("tutorial-list", "Mysql3");
jedis.lpush("tutorial-list", "Mysql4");
jedis.lpush("tutorial-list", "Mysql5");
// 获取存储的数据并输出
List<String> list = jedis.lrange("tutorial-list", 0 ,2);
for(int i=0; i<list.size(); i++) {
System.out.println("Stored string in redis:: "+list.get(i));
}
System.out.println();
list = jedis.lrange("tutorial-list", 1, 2);
for(int i=0; i<list.size(); i++) {
System.out.println("Stored string in redis:: "+list.get(i));
}
String val = jedis.lpop("tutorial-list"); //移除list.get(0)并返回值
System.out.println("list.get(0): "+val);
for(int i=0; i<list.size(); i++) {
System.out.println("Stored string in redis:: "+list.get(i));
}
}
static void getRedisServerAllKeys(){
//连接本地的 Redis 服务
Jedis jedis = new Jedis(host);
System.out.println("Connection to server sucessfully");
// 获取数据并输出
Set<String> list = jedis.keys("*");
String key = null;
for(Iterator it = list.iterator(); it.hasNext();) {
key = (String)it.next();
System.out.println("List of stored keys:: "+key);
}
}
static void setSingleMap(){
Jedis jedis = new Jedis(host);
Map<String, String> map = new HashMap<String, String>();
map.put("name", "fujianchao");
map.put("password", "123");
map.put("age", "12");
// 存入一个map
jedis.hmset("user", map);
// map key的个数
System.out.println("map的key的个数" + jedis.hlen("user"));
// map key
System.out.println("map的key" + jedis.hkeys("user"));
// map value
System.out.println("map的value" + jedis.hvals("user"));
// (String key, String... fields)返回值是一个list
List<String> list = jedis.hmget("user", "age", "name");
System.out.println("redis中key的各个 fields值:"
+ jedis.hmget("user", "age", "name") + list.size());
// 删除map中的某一个键 的值 password
// 当然 (key, fields) 也可以是多个fields
jedis.hdel("user", "age");
System.out.println("删除后map的key" + jedis.hkeys("user"));
jedis.hset("user", "num", "100");
System.out.println("新增后map的key" + jedis.hkeys("user"));
}
static void setObject(){
Jedis jedis = new Jedis(host);
User user = new User();
user.setName("张三");
user.setId(1000);
jedis.set("user1".getBytes(), SerializationUtil.serialize(user));
byte[] val = jedis.get("user1".getBytes());
User u1 = (User)SerializationUtil.deserialize(val);
System.out.println(u1.getName());
}
//redis缓存
static void setObjectWithTimeout(){
Jedis jedis = new Jedis(host);
User user = new User();
user.setName("张三");
user.setId(1000);
jedis.set("user1".getBytes(), SerializationUtil.serialize(user));
int timeout=2;
jedis.expire("user1".getBytes(), timeout); //2秒过期
byte[] val = jedis.get("user1".getBytes());
User u1 = (User)SerializationUtil.deserialize(val);
System.out.println(u1.getName());
try {
Thread.currentThread().sleep(3000); //阻塞3秒
} catch (InterruptedException e) {
e.printStackTrace();
}
val = jedis.get("user1".getBytes());
// u1 = (User)SerializationUtil.deserialize(val);
System.out.println(val); //超时值为空
}
}
public class SerializationUtil {
/**
* 序列化
*
* @param object
* @return
*/
public static byte[] serialize(Object object) {
ObjectOutputStream oos = null;
ByteArrayOutputStream baos = null;
try {
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);
oos.writeObject(object);
byte[] bytes = baos.toByteArray();
return bytes;
} catch (Exception e) {
}
return null;
}
/**
* 反序列化
*
* @param bytes
* @return
*/
public static Object deserialize(byte[] bytes) {
ByteArrayInputStream bais = null;
try {
bais = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bais);
return ois.readObject();
} catch (Exception e) {
}
return null;
}
}
分享到:
相关推荐
在缓存到远程redis的同时,缓存一份到本地进程ehcache(此处的ehcache不用做集群,避免组播带来的开销),取缓存的时候会先取本地,没有会向redis请求,这样会减少应用服务器<–>缓存服务器redis之间的网络开销。...
在应用系统当中,需要确保数据访问所具备的时效性, 将关键性的业务数据全都存储在内存当中。不过如果出现业务 范围持续拓展的情况,只是利用一台机器已然无法实现对全部 关键性业务数据的上传,所以,应该针对...
redis数据库(缓存应用)
Redis缓存应用.mp4
在一些要求高一致性(任何数据变化都能及时的被查询到)的系统和应用中,就不能再使用EhCache来解决了,这个时候使用集中式缓存是个不错的选择,因此本文将介绍如何在Spring Boot的缓存支持中使用Redis进行数据缓存...
redis应用案例_缓存歌曲最新评论:java访问多数据源:redis,mysql。
主要内容 Redis 简介 Redis 特性 其他缓存对比 Redis 集群( 主从复制,Sentinel,Cluster) Redis 应用场景 Redis 常用客户端 Redis 功能演示 Redis
SpringBoot集成Redis缓存在电信运营系统中的应用研究.docxSpringBoot集成Redis缓存在电信运营系统中的应用研究.docxSpringBoot集成Redis缓存在电信运营系统中的应用研究.docxSpringBoot集成Redis缓存在电信运营系统...
Java 两级缓存框架,可以让应用支持两级缓存框架 ehcache(Caffeine) + redis 。避免完全使用独立缓存系统所带来的网络IO开销问题。J2Cache 是 OSChina 目前正在使用的两级缓存框架(要求至少 Java 8)。第一级缓存...
此应用为我最近探索的ssm框架整合范例以及redis 整合 ssm的demo, 给大家作为参考。
reidis介绍、为什么使用内存缓存数据库、Redis作为单线程模型为什么效率还这么高、Redis服务安装及常用命令解析、数据持久化、持久化化文件是如何恢复的、高可用主从搭建、故障转移哨兵模式、集群
跨应用访问 通过redis实现单点登录。即保证安全又减少多次输入密码的繁琐。
Redis是一种开源的高性键值存储系统,被广泛应用于缓存、实时消息传递、会话管理等场景。它以内存为主要存储介质,支持持久化和数据复制,提供了丰富的数据结构和强大的操作命令,为开发者提供了一种快速、可靠的...
本文深入探讨了Redis缓存的关键策略与性能优化技巧。首先,解决缓存穿透,强调缓存空对象与布隆过滤器的应用。接着,针对缓存击穿与雪崩问题,提出过期...这些内容对于提升Redis应用性能、保障系统稳定性具有重要意义。
Redis基本应用模型框架图、Redis缓存层设计图、Redis缓存层架构图
#资源达人分享计划#
随着互联网的发展,各种...缓存技术就是解决此问题的一种方案,缓存技术以其简单的设计、高效的存储性能得到了越来越广泛的应用,而内存数据库则是一种优秀的缓存解决方案。主要介绍Redis的特性以及在系统中的应用。
61、秒杀系统高并发之redis环境搭建 62、秒杀系统高并发之redis的java编程...63、秒杀系统高并发之redis缓存服务代码编写1 64、秒杀系统高并发之redis缓存服务代码编写2 65、秒杀系统高并发之redis缓存服务代码编写3
Redis是一个高性能的内存数据库,被广泛应用于...最后,Redis应用示例有很多,以下是一些常见的示例: 缓存示例:将热点数据缓存到Redis中,如网站的首页数据、商品信息等。 计算结果缓存示例:将一些计算结果缓存到Red
windows系统下redis缓存服务应用