Redis
来源:互联网 发布:java ireport 打印 编辑:程序博客网 时间:2024/06/15 20:43
Redis简介
Redis 是什么,能做什么
Redis 是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel 提供高可用,通过 Redis Cluster 提供自动分区。(摘自 Redis 官网)
作为内存数据库,在现代互联网 web 系统中,还是主要将 Redis 作为缓存使用。大型互联网 Web 系统对性能要求很高,而在前端和数据层之间增加数据缓存已成为必不可少的手段之一,当前比较流行的两个技术就是 Redis 和 Memcached。
Redis安装
Redis支持语言
Redis 支持的语言很多,在此我们以 Java 语言的客户端 Jedis 做一个简单用例。
Redis与Java(Jedis)
pom.xml
<!-- redis 客户端:Jedis --><dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.3</version></dependency>
RedisCache.java
package com.lee.dao.cache;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;public class RedisCache { // 相当于数据库连接池 private JedisPool jedisPool; public RedisCache(String ip, int port) { jedisPool = new JedisPool(ip, port); } public Data getData(int dataId) { Data data = null; try { Jedis jedis = jedisPool.getResource(); try { String key = "data:" + dataId; byte[] bytes = jedis.get(key.getBytes()); // 缓存里重获取到 if (null != bytes) { // ByteArray to Object ByteArrayInputStream bais = new ByteArrayInputStream(bytes); ObjectInputStream ois = new ObjectInputStream(bais); data = (Data) ois.readObject(); ois.close(); bais.close(); } } catch (Exception e) { e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } return data; } public String putData(Data data) { String result = null; try { Jedis jedis = jedisPool.getResource(); try { String key = "data:" + data.getId(); // 对象序列化 ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(baos); oos.writeObject(data); byte[] bytes = baos.toByteArray(); // 设置过期时间 int timeout = 60 * 60; // 一小时 result = jedis.setex(key.getBytes(), timeout, bytes); } catch (Exception e) { e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } return result; } public static void main(String[] args) { // 使用 Java 客户端 Jedis 连接 Redis RedisCache rc = new RedisCache("192.168.199.6", 6379); // 缓存数据到 Redis 服务器 Data data = new Data(1, "test"); rc.putData(data); // 从 Redis 服务器获取数据 Data target = rc.getData(1); System.out.println(target); }}
服务器缓存
使用 redis-cli 客户端连接获取缓存数据
0 0
- Redis
- redis
- Redis
- redis
- Redis
- redis
- Redis
- redis
- REDIS
- Redis
- Redis
- redis
- Redis
- Redis
- Redis
- Redis
- Redis
- Redis
- poj 2049 Finding Nemo(bfs+优先队列)
- pager-taglib分页中文乱码
- linux 查找大目录和大文件
- jQuery 获取对象的方法介绍
- 《安卓》一个按钮实现全选和全不选
- Redis
- android中的资源文件
- 刷牛客网的知识点整理-C++【持续更新...】
- 数据在编程的概念
- Spring之AOP专题报道(自己总结版)
- 用户空间的spi驱动
- vmware workstation的Host-only是不支持混杂模式的
- 安卓学习中Selector改变背景和文字颜色的笔记
- tomcat 配置虚拟站点