基于redis 内存数据库简单使用

ecplise中使用内存数据的客端户,前提要准备要下载两个jar

 

commons-pool2-2.0.jar 

jedis-2.4.2.jar 

前提准备做好了,那我们就开启redis的服务,打开一个命令窗体输入例如以下命令:redis-server  redis-server  redis根目\redis.conf

 

 

server已经开启了,注意端号是6377

 

 

2.eclipse 创建一个项目。把redist须要的包导入项目中

 

 

3.写一个Jedis工具类

public class JedisUtil {

 

private static  String  HOST="127.0.0.1";            //本机地址

private static  Integer PORT=6379;                   //服务port

private static  JedisPoolConfig config;              //连接池的配置对象

private static  JedisPool  pool;                     //连接池对象

static{

         config = new JedisPoolConfig();

         config.setMaxIdle(1024*10);                     //设置内存大小

         pool = new JedisPool(config,HOST);

}

/**

 * 

 * @return  从连接池里获取一个Jedis对象

 */

public static  Jedis  getPoolJedis(){

return  pool.getResource();

}

/**

 * 手动把Jedis对象,回放到连接池里

 */

public static void returnPoolJedis(Jedis jedis){

pool.returnResource(jedis);

}

/**

 * @return  直接创建一个Jedis连接

 */

public static Jedis getJedis(){

return new Jedis(HOSTPORT);

}

}

4.写一个client类操作jedis

public class Client {

 

public static void main(String[] args) {

//simpleSet();

mSet();

}

 

private static void mSet() {

//注意 假设使用 JedisUtil.getJedis(); 是直接创建一个jredis对象,所以不受连接池管理。所以不能回放到连接池里

Jedis jedis = JedisUtil.getPoolJedis();

//设置值多个值

jedis.mset("userName","user1","pwd","123");

//取值

List<String> list = jedis.mget("userName","pwd");

for (String string : list) {

System.out.println(string);

}

jedis.flushDB();

JedisUtil.returnPoolJedis(jedis);

}

 

private static void simpleSet() {

Jedis jedis = JedisUtil.getPoolJedis();

//设置值

jedis.set("userName""user1");

//取值

System.out.println("userName:"+jedis.get("userName"));

//清空内存数据库

jedis.flushDB();

JedisUtil.returnPoolJedis(jedis);

}

 后补集合的简单操作

	/*** hash 操作*/private static void hashSet(){Jedis jedis = JedisUtil.getPoolJedis();//set,设置指定的哈希表里的某个域的值jedis.hset("key1", "user1", "123");jedis.hset("key2", "user2", "456");jedis.hset("key3", "user3", "789");//get,取出指定哈希表里的某个域的值System.out.println(jedis.hget("key1", "user1"));}/*** hash map操作*/public static void mapSet(){Jedis jedis = JedisUtil.getPoolJedis();Map<String,String> map=new HashMap<String,String>();map.put("user1", "123");map.put("user2", "456");map.put("user3", "789");//将一个map集合的键/值,设置到哈希表里。jedis.hmset("map", map);//取出哈希表域的值,也就map的key//System.out.println(jedis.hmget("map", "user3"));//取出哈希表多个域的值List<String> list = jedis.hmget("map", "user1","user2","user3");for (String string : list) {System.out.println("值:"+string);}}/*** 返回哈希表key中,全部的域与值*/public static void getAll(){Jedis jedis = JedisUtil.getPoolJedis();Map<String,String> map = jedis.hgetAll("map");Set<String> keySet = map.keySet();Iterator<String> i = keySet.iterator();while(i.hasNext()){System.out.println(map.get(i.next()));}//jedis.del(key) key field [field ...]删除哈希表key中的一个或多个指定域。 //jedis.hlen(key) key 返回哈希表key中域的数量。 //jedis.hexists(key, field) key field查看哈希表key中,给定域field是否存在。

//jedis.hincrByFloat(key, field, increment) key field increment为哈希表key中的域field的值加上增量increment。 //jedis.hkeys(key) key返回哈希表key中的全部域。 //jedis.hvals(key) key返回哈希表key中的全部值。 } /** * list操作 */ public static void list(){ Jedis jedis = JedisUtil.getPoolJedis(); //设置值,是以栈的存储方式,先进后出。

jedis.lpush(key, strings) strings能够是设置多个值。 jedis.lpush("list","index1"); jedis.lpush("list","index2"); jedis.lpush("list","index3"); //取值,依据開始下标与结束下标的范围取值 List<String> list = jedis.lrange("list", 0,2); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } //jedis.llen(key) key 返回列表key的长度 //jedis.lrem(key, count, value) 依据參数count的值,移除列表中与參数value相等的值 } /** * set操作 */ public static void set(){ Jedis jedis = JedisUtil.getPoolJedis(); //设置值 jedis.sadd("set", "s1","s2","s3","s4"); //移除某个元素,能够移出一个,也能够移出多个。 jedis.srem("set", "s1","s2"); //获出全部的元素 Set<String> set = jedis.smembers("set"); Iterator<String> i = set.iterator(); while(i.hasNext()) System.out.println(i.next()); }




}

 

如今能够在redistclient对数据进行取值

 打开一个命令窗体,输入命令 redis-cli 开启client,原后进行赋值

 

转载于:https://www.cnblogs.com/jzssuanfa/p/6791894.html

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

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

相关文章

李连杰年度巨作霍元甲主题曲:周杰伦唱

年末最受人期待的影片《霍元甲》即将全球公映了&#xff0c;视李连杰为偶像的周杰伦将全权负责影片主题曲的创作。而在1月10日&#xff0c;这首电影同名新作已经通过全亚洲50家电台同众多歌迷和影迷见面了。 按周董的话说&#xff0c;这首歌就是在《双截棍》和《龙拳》的基础上…

linux扩大 boot分区大小,Ubuntu扩大boot空间

Ubuntu安装时按一般情况&#xff0c;BOOT分配了100MB&#xff0c;不久升级就显示空间不足。 刚开始还能删除旧的内核解决问题&#xff0c;后来删了旧内核也不够。决定扩大一下BOOT分区大小。 用GParted工具发现&#xff0c;不好扩大&#xff0c;后面没有空间&#xff0c;想缩小…

[Noi2014]随机数生成器

来自FallDream 的博客&#xff0c;未经允许&#xff0c;请勿转载&#xff0c; 谢谢。 n,m<5000 前面生成的一堆数列 意义不明 实际上就是给你一个矩阵求排序后字典序最小的路径序列 发现(1,1)->(n,m)在选了(x,y)之后就变成了选(1,1)->(x,y)和(x,y)->(n,m) 所以直接…

Inherts

在http://mqingqing123.cnblogs.com/archive/2006/01/14/317162.html里&#xff0c;我介绍了CodeFile来取代Codebehind&#xff0c;可能你会感觉疑惑&#xff1a;ASP.NET工作组花费了很大的时间建立了与.NET1.1不同的后台文件模型&#xff0c;为什么没有更改.NET1.1的Inherits呢…

通孔的作用是什么linux,电路板空洞的作用是什么 如何区分PTH与NPTH两种通孔

如果你有机会拿起一片电路板&#xff0c;稍微观察一下会发现这电路板上有着许多大大小小的孔洞&#xff0c;把它拿起来对着天花板上的电灯看&#xff0c;还会发现许多密密麻麻的小孔&#xff0c;这些孔洞可不是放在哪里摆好看的&#xff0c;每个孔洞都是有其目的而被设计出来的…

Django Step by Step中文版,推荐一下

Diango是Python的一个快速Web开发框架&#xff0c;称为Python的ROR&#xff0c;在limodou的Blog里已经推荐了很久&#xff0c;元旦前后也学习了一下&#xff0c;最近很懒&#xff0c;什么都没有干。文档地址&#xff1a;http://www.woodpecker.org.cn/obp/django/django-stepby…

UVa 11324 最大团(强连通分量缩点)

https://vjudge.net/problem/UVA-11324 题意&#xff1a;给一张有向图G&#xff0c;求一个结点数最大的结点集&#xff0c;使得该结点集中任意两个结点u和v满足&#xff0c;要么u可以到达v&#xff0c;要么v可以达到u。 思路&#xff1a; 找到SCC后进行缩点建图&#xff0c;每个…

关于mysql修改密码 set password for root@localhost = password(‘xxx‘);报错解决方法

mysql> SET PASSWORD FOR rootlocalhost PASSWORD(123456); ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near PASSWORD(123456) at line 1 通过下面的命令…

佳能Linux230快门速度怎么调,80d快门速度怎么调

80d快门速度怎么调导语&#xff1a;佳能80d作为70d的升级版机型改变不是很大&#xff0c;但是也有一些很好的升级。很多朋友都已经入手了这款单反&#xff0c;一些入门的朋友可能对这款单反的操作不太明白。拿到相机之后拍出来的照片并不理想&#xff0c;本文就这款相机做点简单…

身份证照片比对,身份鉴别,人脸实名

详情链接&#xff1a;http://www.haoservice.com/docs/110 基于国家人口库,通过面部识别相关技术鉴证识别用户真实身份,人脸实名 支持格式&#xff1a; JSON/XML请求方式&#xff1a; POST接口备注&#xff1a; 测试表单&#xff1a;<form name"input" action&quo…

ie 7 beta 2出来了

下载地址&#xff1a;http://www.microsoft.com/windows/IE/ie7/ie7betaredirect.mspx

c语言编写源程序内容,编程(C语言源程序代码)讲述.doc

已知 S11/(12)1/(123)…1/(123…N) &#xff0c;当N的值为50时&#xff0c;求S的值。要求&#xff1a;按四舍五入的方式精确到小数点后第四位。#include #includemain(){float s0.0;int n,t0;for(n1;n<50;n){ttn;ss1.0/t;}printf("%7.4f",s);}1.9608把一张一元钞票…

【BootStrap】 概述 CSS

BootStrap BootStrap由Twitter开发&#xff0c;基于HTML,CSS,JS&#xff0c;是一套前端框架。它的特点是对浏览器良好的支持&#xff08;目前市面上所有流行浏览器都可以&#xff09;&#xff0c;兼容移动设备&#xff0c;以及响应式设计&#xff08;响应式CSS自适应于各种设备…

1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains解决

1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column btc.a.applicant_unit which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_modeonly_full_group_by 执行下如下语句&…

祝贺您

如果您阅读到这篇文章&#xff0c;这就意味着您注册的博客已经申请成功。转载于:https://blog.51cto.com/11067/2441

SQL server中DateTime类型字段如何赋值零?

.net 1.1 不支持Sql Server datetime字段为空的情况.net 2.0 开始支持Sql Server datetime字段为空在不支持datetime为空的情况下&#xff0c;Sql Server数据库一般是选择一个特定的日期代表空值&#xff0c;默认的情况下&#xff0c;是1900-1-1

Java DO到DTO转换利用spring 的BeanUtils.copyProperties

Java DO到DTO转换利用spring 的BeanUtils.copyProperties() public static <T> List<T> copy(Object sourceList, Class<?> beanClass) throws Exception {List<Object> sList (List<Object>) sourceList;List<Object> tList new Arra…

c语言记录五个数组编程,C语言经典编程之数组

1、元素互换定义一个整型数组num[10]&#xff0c;随机初始化数组中元素值&#xff0c;然后将头尾元素两两互换&#xff0c;将交换后的数组值输出。【代码】#include int main(void){int num[10] {};int i 0;int temp;for(i 0; i < 10; i){scanf("%d", &num…