在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(HOST, PORT);

}

}

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,原后进行赋值

基于redis 内存数据库简单使用的更多相关文章

  1. 基于Redis的简单分布式锁的原理

    参考资料:https://redis.io/commands/setnx 加锁是为了解决多线程的资源共享问题.Java中,单机环境的锁可以用synchronized和Lock,其他语言也都应该有自己的 ...

  2. 基于 Redis 实现简单的分布式锁

    摘要 分布式锁在很多应用场景下是非常有效的手段,比如当运行在多个机器上的不同进程需要访问同一个竞争资源的时候,那么就会涉及到进程对资源的加锁和释放,这样才能保证数据的安全访问.分布式锁实现的方案有很多 ...

  3. 基于Redis实现简单的分布式锁【理论】

    摘要 分布式锁在很多应用场景下是非常有效的手段,比如当运行在多个机器上的不同进程需要访问同一个竞争资源的时候,那么就会涉及到进程对资源的加锁和释放,这样才能保证数据的安全访问.分布式锁实现的方案有很多 ...

  4. 基于Redis实现简单的分布式锁

      在分布式场景下,有很多种情况都需要实现最终一致性.在设计远程上下文的领域事件的时候,为了保证最终一致性,在通过领域事件进行通讯的方式中,可以共享存储(领域模型和消息的持久化数据源),或者做全局XA ...

  5. Redis内存数据库在Exchange会议室的应用

    本文论述了现有Exchange会议室应用现状和不足之处,并详细介绍了Redis内存数据库在Exchange会议室的应用,并给出了一种高性能的应用架构及采用关键技术和关键实现过程,最终实现大幅改进系统性 ...

  6. 基于redis有序集合,实现简单的延时任务

    基于redis有序集合,实现简单的延时任务 延时任务的场景很多,开发过程中我们经常会遇到,比如说: 1.订单未付款,5分钟后自动取消,这是电商网站非常普遍的需求: 2.用户创建订单不付款,3分钟后自动 ...

  7. 基于Redis的三种分布式爬虫策略

    前言: 爬虫是偏IO型的任务,分布式爬虫的实现难度比分布式计算和分布式存储简单得多. 个人以为分布式爬虫需要考虑的点主要有以下几个: 爬虫任务的统一调度 爬虫任务的统一去重 存储问题 速度问题 足够“ ...

  8. Redis学习总结(1)——Redis内存数据库详细教程

    1.redis是什么 2.redis的作者何许人也 3.谁在使用redis 4.学会安装redis 5.学会启动redis 6.使用redis客户端 7.redis数据结构 – 简介 8.redis数 ...

  9. Tomcat7基于Redis的Session共享实战二

    目前,为了使web能适应大规模的访问,需要实现应用的集群部署.集群最有效的方案就是负载均衡,而实现负载均衡用户每一个请求都有可能被分配到不固定的服务器上,这样我们首先要解决session的统一来保证无 ...

随机推荐

  1. iOS图片的伪裁剪(改变图片的像素值)

    0x00 原理 利用一张图片事先画好的图片(以下称为蒙板),盖在要被裁剪的的图片上,然后遍历蒙板上的像素点,修改被裁剪图片对应位置的像素的色值即可得到一些我们想要的不规则图片了(比如人脸) 0x01 ...

  2. 在CentOS 7中轻松安装Atomic应用(atomicapp)

    sudo yum install docker atomic etcd kubernetes sudo systemctl enable docker.service sudo systemctl s ...

  3. Java学习----你可以知道对象的工作结果(获取方法的返回值)

    1.写返回类型 2.return 返回值 3.定义变量接受返回值 public class App2 { public String [] print(String msg, int num) { f ...

  4. Android SurfaceView使用

    与View区别 更新View任务太重会导致UI线程阻塞 而SurfaceView不会,可以在UI线程之外更新UI 工程代码 SurfaceViewDemo.zip ------------------ ...

  5. openerp 中如何方便对搜索时间段

    以前为了方便的搜索时间区间,经常用wizard对方式,设置开始  结束时间,需要做大量对代码工作, 今天看了search view对组成, 可以用2个filter_domain 来做, 这样用户需要输 ...

  6. Python 环境

    文章出处:http://www.cnblogs.com/winstic/,请保留此连接 总结一下自己使用python过程中安装三方包的方法 Python 安装 Python的安装非常简单,本人使用的w ...

  7. SQL语句操作大全

    SQL语句操作大全   本文分为以下六个部分: 基础部分 提升部分 技巧部分 数据开发–经典部分 SQL Server基本函数部分 常识部分 一.基础 1.说明:创建数据库CREATE DATABAS ...

  8. java 反射 动态代理

    在上一篇文章中介绍Java注解的时候,多次提到了Java的反射API.与javax.lang.model不同的是,通过反射API可以获取程序在运行时刻的内部结构.反射API中提供的动态代理也是非常强大 ...

  9. 延长FLASH和EEPROM芯片写入次数的小方法

    开发电子产品时,常常需要断电后保存某些数据,这就需要使用 FLASH或EEPROM芯片,这两种芯片,可擦除的次数是有限制的,通常FLASH为10万次,EEPROM要多一点,为100万甚至1000万次. ...

  10. 2句代码轻松实现WPF最大化不遮挡任务栏并且具有边框调节效果

    原文:2句代码轻松实现WPF最大化不遮挡任务栏并且具有边框调节效果 相信刚入门的菜鸟跟我一样找遍了百度谷歌解决最大化遮挡任务栏的方法大多方法都是HOOK一大堆API声明 最近在敲代码的时候无意中发现有 ...