redis缓存(jedis), 链接,存,取,String,map,对象

windwos端修改

redis.windows.conf 文件 配置访问ip 和 端口 和 auth 
端口  port 6379
密码  requirepass 123456

 

 cmd cd 到解压目录 执行 redis-server.exe redis.windows.conf   如果不指定配置文件,设置项重新启动后失效

启动成功

 

 

 若报错

[2368] 21 Apr 02:57:05.611 # Creating Server TCP listening socket 127.0.0.1:6379: bind: No error

解决方法:在命令行中运行

redis-cli.exe

127.0.0.1:6379>shutdown

not connected>exit

然后重新运行redis-server.exe redis.windows.conf,启动成功!

 

设置好后 可以使用redismanager 可视化工具连接  安装包,可视化工具&jar

 

 

 

java

 

import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;  public class JedisDemo{  private final static String AUTH = "12345678";//redis 密码 //transient 不会被序列化public void addHashMap(String key, HashMap map){Jedis  redis = new Jedis ("127.0.0.1",6379);//连接redis  redis.auth(AUTH);redis.hmset(key, map);System.out.println("hashmap set success!");}public HashSet queryHashMapByKey(String key){  Jedis  redis = new Jedis ("127.0.0.1",6379);//连接redis  redis.auth(AUTH);//return (HashSet) redis.hvals(key);  return (HashSet) redis.hkeys(key);}  public List queryHashMapByVal(String key){JedisShardInfo info = new JedisShardInfo("127.0.0.1",6379);Jedis redis = new Jedis (info);//连接redis  redis.auth(AUTH);Set keys = (HashSet) redis.hkeys(key);Iterator<String> it = keys.iterator();	Long l = redis.hlen(key);Integer i = Integer.valueOf(l.toString());String[] strw = new String[i];int index = 0;while(it.hasNext()){    String obj1 = it.next();    strw[index] = obj1;index++;System.out.println("key="+obj1 +",  value ="+ redis.hmget(key,obj1));}return redis.hmget(key,strw);}  public String queryString(String key){  Jedis  redis = new Jedis ("127.0.0.1",6379);//连接redis  redis.auth(AUTH);return redis.get(key);  }//加入redis缓存public void addString(String key,String value){  Jedis  redis = new Jedis ("127.0.0.1",6379);//连接redis  redis.auth(AUTH);//验证密码redis.set(key, value);  }  public static void main(String[] args){   //try {Jedis rs = new Jedis ("127.0.0.1",6379);//连接redis  rs.auth(AUTH);//验证密码JedisDemo t1 = new JedisDemo();  //String  t1.addString("key1","第一个值String类型的");  String value = t1.queryString("key1");  System.out.println("get key1 >>>" + value);//HashMap  HashMap map = new HashMap(); for (int i = 0; i < 10000; i++) {//hashmap里的key如果存在就不继续保存到缓存中if(!rs.hexists("hashmap","MapId"+i)){map.put("MapId"+i, "MapValue"+i);  }}if(!rs.exists("hashmap")){t1.addHashMap("hashmap", map);  }HashSet list = t1.queryHashMapByKey("hashmap");  List list2 = t1.queryHashMapByVal("hashmap");  //系统中所有key:  Set<String> keys = rs.keys("*"); Iterator<String> it = keys.iterator();  while(it.hasNext()){    Object obj1 = it.next();    System.out.println(obj1);    }rs.append("001", "一个");//和set方法一样都是调用了 sendCommand(...)rs.del("keyDel");//DEL 移除给定的一个或多个key。如果key不存在,则忽略该命令。  rs.set("keyExpire","一个有20s生命时间的key");rs.expire("keyExpire",10);//expire 设置Key的过期时间(以秒[s]为单位)  //TTL 返回给定key的剩余生存时间(time to live)(以秒为单位) //不设置生命周期 返回值为-1 ,key不存在返回值 -2System.out.println("剩余生存时间"+rs.ttl("keyExpire")+"秒");rs.persist("keyExpire");//PERSIST key 移除给定key的生存时间。  System.out.println(rs.ttl("keyExpire"));//移除生命周期后返回值为 -1//EXISTS 检查给定key是否存在。    String ifKey = "keyExpire";boolean flag = rs.exists(ifKey);//参数3//NX 只有在不存的情况下才设置 key//XX 只有在已经存在的情况下才设置key//参数4//过期时间单位:EX=秒;PX =毫秒if(flag){System.out.println("key:"+ifKey+" ,存在");//key存在设置rs.set(ifKey, ifKey+",这个key存在 设置他的值为此,生命周期20秒", "XX","EX",20);}else{System.out.println("key:"+ifKey+" ,不存在");//key不存在设置rs.set(ifKey, ifKey+",这个key 不存在 设置他的值为此,生命周期15秒","NX","EX",15);}//} catch (Exception e) {//e.printStackTrace();//}}   }  

 

 

 

 

 

//调试等待不同时间可以观察key 生命周期时进行操作,生命周期外操作 

 

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

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

相关文章

微信公众号之微信支付(V3版)jsp页面jsapi统一下单调启支付(java版)

web项目 按顺序一步一步来 准备: 申请了微信支付接口的微信公众号一枚 , 备案的域名网站一枚, (如果有没有的这两个东西会耽误你很久,因为微信支付必须是线上,无法本地调试,) 这里说一下 如果有经济条件的最好申请一台win系统的服务器作为测试服务器这样会使你省去很多的麻烦,装…

微信CA证书(本例使用 java,win7服务器)

CA证书 微信支付HTTPS服务器证书验证指引https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter23_4 下载证书文件 DigiCert_Global_Root_CA.der官方安装步骤

jeecg扩展字段,非实体属性

jsp 添加对应的字段名称 后台

wex5部署教程到数据库

第一步. 打包app 模式3 选择插件勾选, 绑定data c 组件 input 输入框不可编辑, js 赋值后 可以编辑, 第二步. 第三步 4 5 6 7 8 9 10 11 12 启动tomcat 运行app OK

jeecg 输入框属性 自定义ajax 验证字段值是否存在

jsp <div class"form"><label class"Validform_label">选项编号: </label><input name"typecode" class"inputxt" value"${type.typecode }" datatype"/^[A-Za-z0-9\u4E00-\u9FA5\uf900-\ufa2d…

SVN插件版本过低1.6的已经不兼容现在新版的eclipse 了用 1.8X的吧

SVN插件版本过低 1.6的已经不兼容现在新版的eclipse 了用 1.8X的吧 SVN插件下载地址及更新地址&#xff0c;版本1.8.x Links for 1.8.x Release: Eclipse update site URL: http://subclipse.tigris.org/update_1.8.x svn插件包下载: http://subclipse.tigris.org/servlets…

JEECG列表嵌套查询列表子查询+号功能

控制器 Controller RequestMapping("/planQueryController") public class PlanQeruyController extends BaseController {private static final Logger logger LoggerFactory.getLogger(PlanQeruyController.class);Autowiredprivate DbThekeyStationScanLogServic…

泛微OA流程表单验证附加验证条件-js代码块

身份证号 验证18位 对应字段名 field10762 数据字段名sfzh 上代码 jQuery(document).ready(function() {var value1 "field10762"; //重写checkCustomizecheckCustomize function(){//dobeforecheck提交按钮验证&#xff0c;当点击时触发var str1 $("#&q…

JEECG分页条数自定义

修改 DataGridTag.java 配置 条数 sb.append(StringUtil.replaceAll("loadMsg: \{0}\,", "{0}", MutiLangUtil.getLang("common.data.loading")));sb.append("pageSize: " pageSize ",");sb.append("pagination:&quo…

SAP ABAP打印MM采购发票打印开发

复制程序应该有部分对象需要自行创建,需要调试,仅供参考 需要打印的模板 程序代码 *&---------------------------------------------------------------------* *& 程序名称/Program Name :ZMMP001 *& 程序名称/Program Des :采购发票: *&…

SAP ABAP 打印(smartforms方式)

程序代码 *&---------------------------------------------------------------------* *& Report Z3TEST004 *&---------------------------------------------------------------------* *& 打印 采购发票 查询 *&-----------------------------------…

SAP ABAP刷新ALV 渲染刷新 (我也不太懂,反正就这么写了)

调用 REFRESH_TABLE_DISPLAY 自定义 方法 REFRESH_TABLE_DISPLAY LVC_S_STBL

jeecg t:datagrid标签 每页显示条数 扩展

1.标签属性中有 pageSize 可以修改 2,直接改源码 org.jeecgframework.tag.core.easyui 包下DataGridTag 1544行

jeecg <t:choose 功能标签用法修改 处理选择0条记录回写

修改时 页面 隐藏域id 回写异常 修改 , 选择1条记录正常 选择0条记录 无法写空,只能通过清空按钮清空 修改如下

51单片机相关寄存器

前言 单片机复习的时候对应寄存器的记忆感觉很混乱&#xff0c;这里进行一下整理,后面的单词是我用来辅助记忆的&#xff0c;可能并不是表示原本的含义。 P3口的第二功能 0RXD 串行数据输入口 1TXD串行数据输出口2INT0外部中断0输入3INT1外部中断1输入4T0定时器0外部计数输入…

开启防火墙web服务器访问权限 开启必要端口共外部使用

开启防火墙开启必要端口共外部使用 控制面板>> win 防火墙 >>高级设置 >> 入站规则

WeX5 3.8开发工具之蓝牙打印(全流程记录不是最全,胜似最全)

技术分享 记录踩过的坑和别的大佬没有叽歪的点 开始做蓝牙打印看到网上很多做混合开发 和安卓开发,ios开发的例子,插件等等版本大同小异,并不是像其他博客上所说的那么简单,[下载插件,无需改动,连接打印开始,图片为证],没那么简单.往往困扰我们没有进行下去的是细节,那么 为…

扫一扫闪退的可能性之一[wex5开发]

这两个插件不可以同时存在 因为这一句插件的引入导致整个项目搜索了一下午,什么活都没干 蓝牙打印时 一般会有扫码的功能 并用 所以..... require("cordova!com.justep.cordova.plugin.barcodescanner");//require("cordova!phonegap-plugin-barcodescanner&…

jeecg 查看 页面 父子表 横向滚动条效果 官方被禁用

关键代码注释替换 if (tabs) {//增加width属性&#xff0c;fit属性之前写死&#xff0c;改为由页面设定&#xff0c;不填默认truesb.append("<div id\"" id "\" tabPosition\"" tabPosition "\" borderflase style\"…

JEECG 缓存用法

1 .配置文件 ehcache.xml 添加 2.Controller 手动更新接口数据 启动执行接口 声明接口 实现接口