Redis安装 java中的连接 序列化 反序列化
- 安装路径 /webapp/redis/redis-3.2.
- #启动redis
- /webapp/redis/redis-3.2./src/redis-server &
- #关闭redis
- /webapp/redis/redis-3.2./src/redis-cli shutdown
- 1、安装
- $ wget http://download.redis.io/releases/redis-3.2.3.tar.gz
- $ tar xzf redis-3.2.3.tar.gz
- $ cd redis-3.2.3
- $ make MALLOC=libc
- #启动redis
- src/redis-server &
- #关闭redis
- src/redis-cli shutdown
- $ src/redis-cli
- 127.0.0.1:6379> set foo bar
- OK
- 127.0.0.1:6379> get foo
- "bar"
- $
使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip
如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar,下载地址:http://files.cnblogs.com/liuling/commons-pool-1.5.4.jar.zip
- //连接服务器的 Redis 服务
- Jedis jedis = new Jedis("192.168.248.129", 6379);
- //权限认证
- jedis.auth("123456");
- 3、报错解决
- a、绑定的ip修改,修改redis-3.2.3文件夹下的redis.conf文件
- # bind 127.0.0.1 注掉绑定的本机ip地址
- b、设置密码
- # redis-cli
- # config set requirepass 123456
NOAUTH Authentication required.
- 提示没有权限访问的时候
- 输入 auth "yourpassword" 即可连接
- 连接redis之前应该查看服务防火墙是否关闭,或者开启redis默认的端口
- 序列化的应用
- /*
- * Copyright (c) 2016 Sohu TV. All rights reserved.
- */
- package com.sohu.dao.redis;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import redis.clients.jedis.Jedis;
- import redis.clients.jedis.JedisPool;
- import com.dyuproject.protostuff.LinkedBuffer;
- import com.dyuproject.protostuff.ProtostuffIOUtil;
- import com.dyuproject.protostuff.runtime.RuntimeSchema;
- import com.sohu.model.Seckill;
- /**
- * <P>
- * Description:
- * </p>
- * @author jfw
- * @version 1.0
- * @Date 2016年2月14日下午2:51:48
- */
- public class RedisDao {
- private final JedisPool jedisPool;
- private final RuntimeSchema<Seckill> schema=RuntimeSchema.createFrom(Seckill.class);
- private final Logger logger=LoggerFactory.getLogger(this.getClass());
- public RedisDao(String ip,int port){
- jedisPool=new JedisPool(ip,port);
- }
- public Seckill getSeckill(long seckillId){
- try {
- Jedis jedis=jedisPool.getResource();
- jedis.auth("123456");
- try {
- String key="seckill:"+seckillId;
- byte[] bytes=jedis.get(key.getBytes());
- if(bytes!=null){
- Seckill seckill=schema.newMessage();
- ProtostuffIOUtil.mergeFrom(bytes, seckill, schema);
- return seckill;
- }
- }finally{
- jedis.close();
- }
- } catch (Exception e) {
- logger.error("{seckillId}"+seckillId+e.getMessage(),e);
- }
- return null;
- }
- public String putSeckill(Seckill seckill){
- try {
- Jedis jedis=jedisPool.getResource();
- jedis.auth("123456");
- try {
- String key="seckill:"+seckill.getId();
- byte[] bytes=ProtostuffIOUtil.toByteArray(seckill, schema, LinkedBuffer.allocate(LinkedBuffer.DEFAULT_BUFFER_SIZE));
- int timeout=60*60;
- String result=jedis.setex(key.getBytes(),timeout, bytes);
- return result;
- }finally{
- jedis.close();
- }
- } catch (Exception e) {
- logger.error("{seckill}"+seckill+e.getMessage(),e);
- }
- return null;
- }
- }
spring.xml配置
- <bean id="redisDao" class="com.sohu.dao.redis.RedisDao">
- <constructor-arg index="0" value="192.168.1.143"/>
- <constructor-arg index="1" value="6379"/>
- </bean>
- <!-- protostuff自定义序列化 -->
- <dependency>
- <groupId>com.dyuproject.protostuff</groupId>
- <artifactId>protostuff-core</artifactId>
- <version>1.0.8</version>
- </dependency>
- <dependency>
- <groupId>com.dyuproject.protostuff</groupId>
- <artifactId>protostuff-runtime</artifactId>
- <version>1.0.8</version>
- </dependency>
- <dependency>
- <groupId>redis.clients</groupId>
- <artifactId>jedis</artifactId>
- <version>2.7.2</version>
- </dependency>
Redis安装 java中的连接 序列化 反序列化的更多相关文章
- 【译】Java中的对象序列化
前言 好久没翻译simple java了,睡前来一篇. 译文链接: http://www.programcreek.com/2014/01/java-serialization/ 什么是对象序列化 在 ...
- java中myeclipse连接mysql问题(java.lang.ClassNotFoundException: com.mysql.jdbc.Driver)
java中myeclipse连接mysql问题(java.lang.ClassNotFoundException: com.mysql.jdbc.Driver) 1.往项目中添加mysql-conne ...
- Redis】Java中使用Jedis操作Redis(Maven导入包)、创建Redis连接池
如果我们使用Java操作Redis, 需要确保已经安装了 redis 服务及 Java redis 驱动. Maven项目可以直接在pom.xml中加入jedis包驱动: <!-- https: ...
- Java中Jedis连接Linux上的Redis出现connect time out(解决方案)
我的代码: /** * * <p>Title: testJedis</p> * <p>Description: 测试单机版的redis连接(每连接一次构建一个对象) ...
- Redis在java中的使用
1.首先安装Redis环境.可以在Windows.linux.别的服务器上搭建Redis环境 2.在java工程中导入必须的jar包 如maven上导入两个jar] <!-- Redis必须包 ...
- java Serializable和Externalizable序列化反序列化详解--转
一.什么是序列化? “对象序列化”(Object Serialization)是 Java1.1就开始有的特性. 简单地说,就是可以将一个对象(标志对象的类型)及其状态转换为字节码,保存起来(可以保存 ...
- java Serializable和Externalizable序列化反序列化详解(转载)
一.什么是序列化? “对象序列化”(Object Serialization)是 Java1.1就开始有的特性. 简单地说,就是可以将一个对象(标志对象的类型)及其状态转换为字节码,保存起来(可以保存 ...
- Redis 在java中的使用(登录验证,5分钟内连续输错3次密码,锁住帐号,半小时后解封)(三)
在java中使用redis,做简单的登录帐号的验证,使用string类型,使用redis的过期时间功能 1.首先进行redis的jar包的引用,因为用的是springBoot,springBoot集成 ...
- Linux学习—redis安装配置及远程连接
1.下载安装包并解压 进入文件夹/usr/local cd /usr/local 下载redis安装包: wget http://download.redis.io/releases/redis-.t ...
随机推荐
- 分析setup/hold电气特性从D触发器内部结构角度
上图是用与非门实现的D触发器的逻辑结构图,CP是时钟信号输入端,S和R分别是置位和清零信号,低有效; D是信号输入端,Q信号输出端; 这里先说一下D触发器实现的原理:(假设S和R信号均为高,不进行置位 ...
- 对Neural Machine Translation by Jointly Learning to Align and Translate论文的详解
读论文 Neural Machine Translation by Jointly Learning to Align and Translate 这个论文是在NLP中第一个使用attention机制 ...
- 01 mysql 基础一 (进阶)
mysql基础一 1.认识mysql与创建用户 01 Mysql简介 Mysql是最流行的关系型数据库管理系统之一,由瑞典MySQLAB公司开发,目前属于Oracle公司. MySQL是一种关联数据库 ...
- 使用selenium模拟登录知乎
网上流传着许多抓取知乎数据的代码,抓取它的数据有一个问题一定绕不过去,那就是模拟登录,今天我们就来聊聊知乎的模拟登录. 获取知乎内容的方法有两种,一种是使用request,想办法携带cookies等必 ...
- Eclipse字体修改
第一步: 第二步: 第三步: 第四步: 第五步: 第六步:
- 菜鸟学Linux - Tarball安装的一般步骤
所谓的Tarball软件,实际上指的是从网络上下载到的源码包.通常是以.tar.gz和tar.bz2结尾.至于gz和bz2的区别在于压缩算法的不同(bz2的压缩效果好像好一些).源码包下载完成后,需要 ...
- WPF系列教程——(一)仿TIM QQ界面 - 简书
原文:WPF系列教程--(一)仿TIM QQ界面 - 简书 TIM QQ 我们先来看一下TIM QQ长什么样,整体可以将界面分为三个部分 TIM QQ 1. 准备 阅读本文假设你已经有XAML布局的基 ...
- 关于DIV内文字垂直居中的写法
最近在写UI,或多或少用到了CSS,在这记录一下,今天用到的DIV内文字垂直居中的写法, 因为所做的项目都是基于WebKit内核浏览器演示的,所以我们今天采用的是-webkit-box的写法: dis ...
- 使用Matrix-tree与它的行列式来解决生成树计数问题
我又把Matrix写错啦 这东西讲课的时候竟然一笔带过了,淦 好吧这东西我不会证 那我们来愉快的看结论吧 啦啦啦 预备工作 你有一个 $ n $ 个点的图 比如说 5 /|\ / | \ 2--1-- ...
- Visual Studio Emulator for Android 折腾记
想用虚拟机调试Android项目,于是想到了MS免费提供的 Visual Studio Emulator for Android,这玩意价格免费量又足,N久之前试用过,速度杠杠的! 安装包很小,不到4 ...