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
list = jedis.lrange("tutorial-list", 0 ,2);
for(int i=0; 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 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 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 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 map = new hashmap();
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 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缓存层架构图
#资源达人分享计划#
随着互联网的发展,各种...缓存技术就是解决此问题的一种方案,缓存技术以其简单的设计、高效的存储性能得到了越来越广泛的应用,而内存数据库则是一种优秀的缓存凯发k8国际娱乐官网入口的解决方案。主要介绍redis的特性以及在系统中的应用。
61、秒杀系统高并发之redis环境搭建 62、秒杀系统高并发之redis的java编程...63、秒杀系统高并发之redis缓存服务代码编写1 64、秒杀系统高并发之redis缓存服务代码编写2 65、秒杀系统高并发之redis缓存服务代码编写3
windows系统下redis缓存服务应用
springboot集成redis应用配置(附完整配置文件)
包括以下是常见的一些redis缓存面试题目: 什么是redis?它与数据库有什么不同? redis有哪些数据类型?它们各自的应用场景是什么? 什么是redis的哈希槽?它是如何工作的? redis的持久化是什么?它有哪些方式?...