Reds关键技术分析及应用
- Redis的安装和配置
Redis是一款开源,免费, 高性能的key-value数据库,与Memcached类似(简单地比较Redis与Memcached的区别
1 Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
2 Redis支持数据的备份,即master-slave模式的数据备份。
3 Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。)
Linux下安装运行:
下载:http://download.redis.io/releases/redis-3.2.8.tar.gz
$ tar xzf redis-3.2.8.tar.gz
$ cd redis-3.2.8
$ make
$ src/redis-server
$ src/redis-cli
- Redis基本命令
配置命令:
语法:
127.0.0.1:6379> config get CONFIG_SETTING_NAME
127.0.0.1:6379> config set CONFIG_SETTING_NAME NEW_CONFIG_VALUE
举例:
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "123456"
127.0.0.1:6379> config set requirepass "123456789"
OK
键命令:用于管理Redis的键
字符串命令:用于管理Redis字符串类型值
语法:
127.0.0.1:6379> command KEY_NAME
举例:
127.0.0.1:6379> set name xiaoming
127.0.0.1:6379> get name
127.0.0.1:6379> keys * #查询所有的key
127.0.0.1:6379> expire name 60 #设置有效期为60秒,如果没有设置有效期时,永久有效。
127.0.0.1:6379> ttl name #查看某个键剩余有效期。如果永久有效则值为-1,如果失效不存在,则值为-2
127.0.0.1:6379> exists name #查看某个键是否存在 0表示不存在,1表示存在
127.0.0.1:6379> del name #删除某个键
- 在Java中使用Redis
a) Jedis是Redis官方首选的Java客户端开发包
b) 需要在程序中添加Jedis依赖:
<dependency>
<groupId>redis.clients</ groupId>
<artifactId>jedis</ artifactId>
<version>2.1.0</version>
</dependency>
c) 连接到Redis服务:
public static void main(String[] args){//连接到本地的Redis服务Jedis jedis = new Jedis(“localhost”);//查看服务是否在运行System.out.println(“Server is running:”+jedis.ping());jedis.set(“foo”,”bar”);String value = jedis.get(“foo”);
}
d) 程序中提供RedisAPI接口
public class RedisAPI{public JedisPool jedisPool;//使用连接池技术,通过spring进行注入实例public JedisPool getJedisPool(){return jedisPool;
}
public void setJedisPool(){this.jedisPool=jedisPool;
}
//get
public String get(String key){Jedis jedis = jedisPool.getResource();String value = jedis.get(key);jedis.returnResource(jedis);//归还连接池return value;
}
//set
public String set(String key,String value){Jedis jedis = jedisPool.getResource();String result = jedis.set(key,value); //返回值:状态码jedis.returnResource(jedis);//归还连接池return result;
}
//这个方法可以设置有效期
public String set(String key,int seconds,String value){Jedis jedis = jedisPool.getResource();String result = jedis.setex(key,seconds,value); //设置有效期jedis.returnResource(jedis);return result;
}//exists
public boolean exists(String key){Jedis jedis = jedisPool.getResource();Boolean result = jedis. exists (key); //设置有效期jedis.returnResource(jedis);return result;
}//ttl
public long ttl(String key){Jedis jedis = jedisPool.getResource();Long result = jedis. ttl (key); jedis.returnResource(jedis);return result;
}
//del
public long del(String key){Jedis jedis = jedisPool.getResource();Long result = jedis. del (key); #返回的是删除key的个数jedis.returnResource(jedis);return result;
}
}
e) 在spring配置文件中注入JedisPool实例
<!--redis 配置 开始--><bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"><property name="maxActive" value="${redis.maxActive}" /><property name="maxIdle" value="${redis.maxIdle}" /><property name="maxWait" value="${redis.maxWait}" /><property name="testOnBorrow" value="true" /></bean><!-- Config poolConfig, String host, int port, int timeout, String password, int database--><bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="destroy" ><constructor-arg ref="jedisPoolConfig"/><constructor-arg value="${redis.host}"/><constructor-arg value="${redis.port}"/><constructor-arg value="${redis.timeout}"/><constructor-arg value="${redis.pass}"/><constructor-arg value="${redis.default.db}"/></bean><bean id="redisAPI" class="cn.itrip.common.RedisAPI"><property name="jedisPool" ref="jedisPool"/></bean><bean id="validationToken" class="cn.itrip.common.ValidationToken"><property name="redisAPI" ref="redisAPI" /></bean>
f) 在database.properties文件中添加如下内容:
#redis
redis.host=127.0.0.1
redis.port=6379
redis.pass=redis@WSX!QAZ1234
redis.default.db=0
redis.timeout=3000
redis.maxActive=300
redis.maxIdle=100
redis.maxWait=1000
g) 添加测试类:
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
RedisAPI api= (RedisAPI)ctx.getBean("redisAPI");api.set("id","100");bool``ean bool = api.exist("id");String v = api.get("id");long sec = api.ttl("id");System.out.println("bool:"+bool+",v:"+v+",sec:"+sec);
h)redis默认本地访问,要远程访问作如下配置:打开redis.conf
1)将bind参数设置为:0.0.0.0
2)启动时指定:src/redis-server redis.conf
3)可以通过 命令:ps -ef|grep redis查看redis绑定到了哪一个ip
root 8526 8080 0 21:08 pts/2 00:00:00 src/redis-server 0.0.0.0:6379
4)启动客户端命令:src/redis-cli –h 192.168.70.133
5) 关闭防火墙
i)安装Redis图形化界面 Redis Desktop Manager
Reds关键技术分析及应用相关推荐
- 服务机器人关键技术分析
前言 回顾2014年刚进入服务机器人行业,我们公司接的第一个订单是10台送餐机器人,那时候我和搭档都是刚刚研究生毕业,我们以伙伴公司的名义招了一位嵌入式工程师和一位机械结构设计工程师.无知者无畏, ...
- 核心网upf作用_5G核心网关键技术分析
5G核心网关键技术分析 陈莉 辽宁邮电规划设计院有限公司,辽宁 沈阳 110179 摘要:5G核心网相对于4G网络在架构.功能.业务能力提供方面有较大的革新,引入了新的关键技术如SBA.支持边缘计算. ...
- TMS320F28x上RTOS移植关键技术分析
TMS320F28x上RTOS移植关键技术分析 详细分析TI公司TMS320F28x系列DSP的启动过程:说明BootROM中程序的运行过程,介绍C编译器和DSP/BIOS的工作细节:探讨DSP的中断 ...
- 智能语音人机交互产业链及关键技术分析
人机交互是一门计算机科学,主要研究关于设计.评价和实现供人们使用的交互计算系统以及相关现象的科学.人机交互的发展经历了以下几个阶段:手工作业阶段.作业控制语言与交互命令语言阶段.图形用户界面(GUI) ...
- 【转】嵌入式系统关键技术分析与开发应用
嵌入式系统关键技术分析与开发应用 来自http://www.chinavideo.org/index.php?option=com_content&task=view§ioni ...
- 中国移动:5G蜂窝IoT关键技术分析
来源:5G 本文讨论了蜂窝物联网的技术现状,针对增强机器类通信和窄带物联网技术标准,提出了2种现网快速部署方案,并进一步指出了C-IoT面向5G的演进路径.该路径充分考虑了5G网络中网络功能虚拟化.软 ...
- 实时视频应用之QoS关键技术分析
本文转自:http://www.vccoo.com/v/ddf5f7 随着WebRTC标准的逐步推广,实时音视频通讯技术受到越来越多公司和技术人员的关注.对于交互式音视频应用而言,稳定.低延时.通话质 ...
- 分布式网络爬虫关键技术分析与实现一网络爬虫相关知识介绍
搜索引擎发展的历史过程与发展现状 1搜索引擎的发展的历史 1990年以前,没有任何人能搜索互联网.所有搜索引擎的祖先,是1990年由Montreal的McGill University学生Alan E ...
- 大豆技术面分析_大豆高产栽培关键技术分析,简单、明了轻松学会
一. 大豆高产栽培和因素分析 1. 大豆高产栽培原理 一般情况下大豆高产栽培技术通过的是对大豆的生产过程的各个环节进行严格的管理,在技术升级管理中,需要注意的是进行技术方式的更新.在技术更新中,针对大 ...
最新文章
- wxWidgets:wxArtProvider类用法
- 2017年第八届蓝桥杯C/C++ B组国赛 —— 第三题:希尔伯特曲线
- python3迭代器是什么,python3 迭代器
- javaweb入门--web是什么
- 实现下拉菜单的宽度与登录人ID长度的匹配
- 使用vue-cli4.5.x快速搭建项目
- idea项目工程里面自动生成的.iml文件无法删除的解决方法
- 信号与线性系统分析 吴大正 (与电子 通信专业的同学共勉)
- 瑞利信道建模 matlab程序原理到实现
- 7.3 超标量流水线
- XMPP即时通讯资料记录
- 区块链Baas平台强势来袭,助力企业快速搭建区块链落地项目
- 中标麒麟7.0操作系统64之修改YUM源
- wma格式怎么转换mp3,4种方法超快学
- kindle特性和硬件介绍(不介绍操作和使用方法)
- Chromium为视频标签 video 全屏播放的过程分析
- python实时监控文件目录_教你三种方法,用 Python实时监控文件
- 初学graphiql 查询操作
- 制冷与空调作业题库及答案
- Win10图标变白纸了,恢复方法
热门文章
- Words Accumulation
- 基于C语言设计的像素小鸟小游戏
- Jenkins邮箱配置过程(qq + 163)
- 《Happy Birthday》游戏开发记录(送给朋友的小礼物)
- 2016年最新高效的60个网络推广方法汇总
- HDU1000A+B problem c++
- ACM第一次练习—1000A
- 免费下载谷歌地球高清卫星影像和高程DEM教程
- Identity-Aware Textual-Visual Matching with Latent Co-attention文章翻译学习(ICCV)
- “毒王”往事:熊猫烧香制造者的反转人生