windows简易版本 Redis 使用 demo样例(ssm框架下)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

 1. 在网上下载 windows 版本 的Redis  。下载了直接解压出来 :

 

 

2. 双击 redis-server.exe 启动服务(如下图),使用中就一直不要关闭这个窗口。(也可cdm命令中设置电脑开机自启动,就不用每次手动开启这个窗口)

 

 

3.   redis 配置:(任由你配置在哪个properties文件中,比如是A.properties文件)

我是配置在dbconfig.properties文件中的。

说明:

redis.host    --------  IP地址 , 如果是本机就127.0.0.1 。   如果是公司服务器就配置服务器IP。

redis.port     --------  jedis 端口号,默认为 6379。

其余都使用默认配置,不用更改。

 

#redis
redis.host=127.0.0.1 
redis.port=6379redis.maxTotal=300
redis.maxIdle=10
redis.numTestsPerEvictionRun=1024
redis.timeBetweenEvictionRunsMillis=30000
redis.minEvictableIdleTimeMillis=1800000
redis.softMinEvictableIdleTimeMillis=10000
redis.maxWaitMillis=1500
redis.testOnBorrow=true
redis.testWhileIdle=true
redis.blockWhenExhausted=false

 

 

 

 

 

4.  spring配置文件中的配置:(任由你放在spring的哪个配置文件中,比如是B.xml 文件。但一定要在B.xml 中引入A.properties )

 

	<!-- 引入配置文件:dbconfig.properties --><context:property-placeholder location="classpath:dbconfig.properties" /><!-- jedis连接池配置 --><bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"><!-- 最大连接数 --><property name="maxTotal" value="${redis.maxTotal}" /><!-- 最大空闲连接数 --><property name="maxIdle" value="${redis.maxIdle}" /><!-- 每次释放连接的最大数目 --><property name="numTestsPerEvictionRun" value="${redis.numTestsPerEvictionRun}" /><!-- 释放连接的扫描间隔(毫秒) --><property name="timeBetweenEvictionRunsMillis" value="${redis.timeBetweenEvictionRunsMillis}" /><!-- 连接最小空闲时间 --><property name="minEvictableIdleTimeMillis" value="${redis.minEvictableIdleTimeMillis}" /><!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 --><property name="softMinEvictableIdleTimeMillis" value="${redis.softMinEvictableIdleTimeMillis}" /><!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 --><property name="maxWaitMillis" value="${redis.maxWaitMillis}" /><!-- 在获取连接的时候检查有效性, 默认false --><property name="testOnBorrow" value="${redis.testOnBorrow}" /><!-- 在空闲时检查有效性, 默认false --><property name="testWhileIdle" value="${redis.testWhileIdle}" /><!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true --><property name="blockWhenExhausted" value="${redis.blockWhenExhausted}" /></bean><!-- jedis客户端单机版 --><bean id="redisClient" class="redis.clients.jedis.JedisPool"><constructor-arg name="host" value="${redis.host}"></constructor-arg><constructor-arg name="port" value="${redis.port}"></constructor-arg><constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg></bean><!-- 引用工程中自己书写的redis常用接口实现类 --><bean id="_jedisClient" class="com.redis.impl.JedisClientSingle"/>
<!-- 引入配置文件:dbconfig.properties --><context:property-placeholder location="classpath:dbconfig.properties" /><!-- jedis连接池配置 --><bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"><!-- 最大连接数 --><property name="maxTotal" value="${redis.maxTotal}" /><!-- 最大空闲连接数 --><property name="maxIdle" value="${redis.maxIdle}" /><!-- 每次释放连接的最大数目 --><property name="numTestsPerEvictionRun" value="${redis.numTestsPerEvictionRun}" /><!-- 释放连接的扫描间隔(毫秒) --><property name="timeBetweenEvictionRunsMillis" value="${redis.timeBetweenEvictionRunsMillis}" /><!-- 连接最小空闲时间 --><property name="minEvictableIdleTimeMillis" value="${redis.minEvictableIdleTimeMillis}" /><!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 --><property name="softMinEvictableIdleTimeMillis" value="${redis.softMinEvictableIdleTimeMillis}" /><!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 --><property name="maxWaitMillis" value="${redis.maxWaitMillis}" /><!-- 在获取连接的时候检查有效性, 默认false --><property name="testOnBorrow" value="${redis.testOnBorrow}" /><!-- 在空闲时检查有效性, 默认false --><property name="testWhileIdle" value="${redis.testWhileIdle}" /><!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true --><property name="blockWhenExhausted" value="${redis.blockWhenExhausted}" /></bean><!-- jedis客户端单机版 --><bean id="redisClient" class="redis.clients.jedis.JedisPool"><constructor-arg name="host" value="${redis.host}"></constructor-arg><constructor-arg name="port" value="${redis.port}"></constructor-arg><constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg></bean><!-- 引用工程中自己书写的redis常用接口实现类 --><bean id="_jedisClient" class="com.redis.impl.JedisClientSingle"/>

 

 

 

 

5.   maven  依赖:

 

		<!-- redis --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.7.2</version></dependency><!-- redis --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.7.2</version></dependency>

 

 

 

 

 

 

6.  书写的redis常用接口及其实现类:(这个主要看你需要哪些,不用的可以不定义)

 

接口:

 

package com.redis;/*** redis java api 常用接口* @author JiangYu*/
public interface JedisClient {/*** 获取string缓存值* @param key* @return*/String get(String key);/*** 设置string缓存值* @param key* @param value* @param second* @return*/String set(String key, String value);/*** 设置string缓存值带失效时间* @param key* @param value* @param second* @return*/String set(String key, String value, int second);/*** 获取hash缓存值* @param hkey* @param key* @return*/String hget(String hkey, String key);/*** 设置hash缓存值* @param hkey* @param key* @param value* @return*/long hset(String hkey, String key, String value);/*** 递增缓存值* @param key* @return*/long incr(String key);/*** 设置缓存值有效时间* @param key* @param second* @return*/long expire(String key, int second);/*** 获取缓存值失效时间* @param key* @return*/long ttl(String key);/*** 删除string缓存值* @param key* @return*/long del(String key);/*** 批量删除以string为前缀的key * @param key* @return*/void batchDel(String key);/*** 删除hash缓存值* @param hkey* @param key* @return*/long hdel(String hkey, String key);/*** 判断key是否存在* @param key* @return*/boolean exists(String key);/*** 清空缓存数据* @return*/boolean clear();
}

 

 

实现类:

 

package com.redis.impl;import java.util.Iterator;
import java.util.Set;import org.springframework.beans.factory.annotation.Autowired;import com.redis.JedisClient;import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;/*** redis 常用接口实现* @author JiangYu**/
public class JedisClientSingle implements JedisClient {@Autowiredprivate JedisPool jedisPool;/*** 获取string缓存值* @param key* @return*/@Overridepublic String get(String key) {Jedis jedis = jedisPool.getResource();String string = jedis.get(key);jedis.close();return string;}/*** 设置string缓存值* @param key* @param value* @param second* @return*/@Overridepublic String set(String key, String value) {Jedis jedis = jedisPool.getResource();String string = jedis.set(key, value);jedis.close();return string;}/*** 设置string缓存值带失效时间* @param key* @param value* @param second* @return*/@Overridepublic String set(String key, String value, int seconds) {Jedis jedis = jedisPool.getResource();String string = jedis.set(key, value);jedis.expire(key, seconds);jedis.close();return string;}/*** 获取hash缓存值* @param hkey* @param key* @return*/@Overridepublic String hget(String hkey, String key) {Jedis jedis = jedisPool.getResource();String string = jedis.hget(hkey, key);jedis.close();return string;}/*** 设置hash缓存值* @param hkey* @param key* @param value* @return*/@Overridepublic long hset(String hkey, String key, String value) {Jedis jedis = jedisPool.getResource();Long result = jedis.hset(hkey, key, value);jedis.close();return result;}/*** 递增缓存值* @param key* @return*/@Overridepublic long incr(String key) {Jedis jedis = jedisPool.getResource();Long result = jedis.incr(key);jedis.close();return result;}/*** 设置缓存值有效时间* @param key* @param second* @return*/@Overridepublic long expire(String key, int second) {Jedis jedis = jedisPool.getResource();Long result = jedis.expire(key, second);jedis.close();return result;}/*** 获取缓存值失效时间* @param key* @return*/@Overridepublic long ttl(String key) {Jedis jedis = jedisPool.getResource();Long result = jedis.ttl(key);jedis.close();return result;}/*** 删除string缓存值* @param key* @return*/@Overridepublic long del(String key) {Jedis jedis = jedisPool.getResource();Long result = jedis.del(key);jedis.close();return result;}/*** 批量删除以string为前缀的key * @param key* @return*/@Overridepublic void batchDel(String key) {Jedis jedis = jedisPool.getResource();Set<String> set = jedis.keys(key+"*");  Iterator<String> it = set.iterator();  while(it.hasNext()){  String keyStr = it.next();  jedis.del(keyStr);}jedis.close();}/*** 删除hash缓存值* @param hkey* @param key* @return*/@Overridepublic long hdel(String hkey, String key) {Jedis jedis = jedisPool.getResource();Long result = jedis.hdel(hkey, key);jedis.close();return result;}/*** 判断key是否存在* @param key* @return*/@Overridepublic boolean exists(String key) {Jedis jedis = jedisPool.getResource();boolean exists = jedis.exists(key);jedis.close();return exists;}/*** 清空缓存数据* @return*/@Overridepublic boolean clear() {Jedis jedis = jedisPool.getResource();jedis.flushAll();jedis.close();return true;}}

 

 

 

 

 

 

 

7.  测试通过,可以使用了:

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451851.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序员的半衰期只有15年?

曾在Google工作负责过技术工作的科技编辑 Matt Heusser总结了他在Google的生活经历&#xff0c;得出结论&#xff1a; 作为程序员&#xff0c;你只有15年时间。Matt 写道当我在Google工作时&#xff0c;发现Google大部分人都是20出头的年轻人&#xff0c;他们经历的很多事情都是…

EasyNVR、EasyDSS二次开发之:RTMP、HLS流在web页面进行无插件播放示例Demo代码

不管是基于EasyNVR还是EasyDSS&#xff0c;都是支持无插件直播&#xff0c;这也是未来视频直播的一个趋势。对于传统的浏览器插件播放谁用谁知道&#xff1b; 以上是软件自带播放展示 背景需求 对于EasyNVR和EasyDSS的使用方式大概分为两大类&#xff0c;一类是直接将软件作为视…

11--移除重复节点

编写代码&#xff0c;移除未排序链表中的重复节点。保留最开始出现的节点。 示例1: 输入&#xff1a;[1, 2, 3, 3, 2, 1] 输出&#xff1a;[1, 2, 3] 示例2: 输入&#xff1a;[1, 1, 1, 1, 2] 输出&#xff1a;[1, 2]

信息图:程序员/开发人员实际在用哪些工具

BestVendor.com的工作人员在全球范围内采访了500名重要开发人员&#xff0c;在调查询问他们实际使用的工具后&#xff0c;制作了一张信息图&#xff0c;如下。 这张信息图覆盖10个方面的工具&#xff1a;Bug 追踪、数据库、开发框架、集成开发环境&#xff08;IDE&#xff09;、…

12-- 缺失的第一个正数

文章目录1.问题描述2.解题代码1.问题描述 给你一个未排序的整数数组&#xff0c;请你找出其中没有出现的最小的正整数。 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: 输入: [7,8,9,11,12] 输出: 1 提示&#xff1a; 你的算法的时间复杂度应…

java中的private public protected

1、public&#xff1a;public表明该数据成员、成员函数是对所有用户开放的&#xff0c;所有用户都可以直接进行调用 2、private&#xff1a;private表示私有&#xff0c;私有的意思就是除了class自己之外&#xff0c;任何人都不可以直接使用&#xff0c;私有财产神圣不可侵…

7款最流行的在线项目管理工具推荐

本文介绍一些非常流行的在线项目管理工具&#xff0c;希望你喜欢。 1. Apptivo 如果你是一个创业的或自由开发人员&#xff0c;或者属于一个小型专业团队&#xff0c;Apptivo这个项目管理软件很值得你你研究。实质上&#xff0c;它是一个基于Web的项目管理应用&#xff0c;让你…

VR全景看年评!PConline年度评测盛典等你来体验

【PConline 2016年度评测】又是一年春草绿&#xff0c;马上还有十天扒拉月2016年就快过完了。每年到这个时候&#xff0c;我们不禁都会拷问自己&#xff1a;你存到钱了么&#xff1f;娶到媳妇了么&#xff1f;买到房了么&#xff1f;答案是都没有&#xff01;哈哈&#xff0c;这…

swagger详解

1快速环境搭建 pom.xml文件中添加如下内容(看清楚再复制&#xff0c;此处不是全部内容) 1 <properties>2 ...3 <swagger.version>2.2.2</swagger.version>4 ...5 </properties>6 7 <dependency>8 …

13--长度最小的子数组

文章目录1.题目要求2.解题代码1.题目要求 给定一个含有 n 个正整数的数组和一个正整数 s &#xff0c;找出该数组中满足其和 ≥ s 的长度最小的连续子数组&#xff0c;并返回其长度。如果不存在符合条件的连续子数组&#xff0c;返回 0。 示例&#xff1a; 输入&#xff1a;…

Apache Subversion 1.7.2发布,开源版本控制工具

SVN&#xff08;Subversion&#xff09;已经发布了1.7的第二个维护版本。 Apache Subversion是一个开放源码、多用户的版本控制系统&#xff0c;支持非 ASCII 文本和二进制数据&#xff0c;支持可在本地访问或通过网络访问的数据库和文件系统存储库。相对于传统的RCS、CVS&…

14--用两个栈实现队列

文章目录1.题目详情2.解题代码1.题目详情 用两个栈实现一个队列。队列的声明如下&#xff0c;请实现它的两个函数 appendTail 和 deleteHead &#xff0c;分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素&#xff0c;deleteHead 操作返回 -1 ) 示例…

15--0~n-1中缺失的数字

文章目录1. 问题描述2. 解题代码1. 问题描述 一个长度为n-1的递增排序数组中的所有数字都是唯一的&#xff0c;并且每个数字都在范围0&#xff5e;n-1之内。在范围0&#xff5e;n-1内的n个数字中有且只有一个数字不在该数组中&#xff0c;请找出这个数字。 示例 1: 输入: [0,…

JIRA 5.0.1 发布

Atlassian公司发布了JIRA 5.0.1版本&#xff0c;该版本相比JIRA 5.0有更多改进功能。1. 管理界面的改进 将更多页面管理转为对话框形式。例如点击页面右上方的“Add New”就可实现新增issue types、sub-tasks、field configurations 、screens。2. 性能改进 解决了基于Lucene 3…

16 --删除排序数组中的重复项

文章目录1.问题描述2.代码实现1.问题描述 给定一个排序数组&#xff0c;你需要在 原地 删除重复出现的元素&#xff0c;使得每个元素只出现一次&#xff0c;返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的…

17--合并两个有序数组

文章目录1.问题描述2.代码实现1.问题描述 给你两个有序整数数组 nums1 和 nums2&#xff0c;请你将 nums2 合并到 nums1 中&#xff0c;使 nums1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。 你可以假设 nums1 有足够的空间&#xff08;空间…

Maven 添加本地 jar 包、添加依赖 jar 文件到本地 Maven 仓库、引用本地 jar

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 把要用的jar放在固定位置&#xff1a; 2.打开CMD&#xff0c;进入到libs文件夹: 3.运行如下命令&#xff1a; mvn install:install-…

黄文俊:Serverless小程序后端技术分享

欢迎大家前往腾讯云社区&#xff0c;获取更多腾讯海量技术实践干货哦~ 黄文俊&#xff0c;现任腾讯云SCF无服务器云函数高级产品经理&#xff0c;多年企业级系统开发和架构工作经验&#xff0c;对企业级存储、容器平台、微服务架构、无服务器计算等领域均有涉猎。今天讲的是怎么…

18--两数之和 II - 输入有序数组

文章目录1.问题描述2.解题代码1.问题描述 给定一个已按照升序排列 的有序数组&#xff0c;找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2&#xff0c;其中 index1 必须小于 index2。 说明: 返回的下标值&#xff08;index1 和 index2&a…

Oracle数据库(二)—— 基本的SQL SELECT语句

&#xff08;一&#xff09;SQL语句分为一下三种类型 DML:Date Manipulation Language 数据操纵语言DDL&#xff1a;Data Definition Language 数据定义语言DCL&#xff1a;Data Control Language 数据控制语言DML&#xff1a;用于查询与修改数据记录 包括如下SQL语句&#xff…