【redis,1】java操作redis: 将string、list、map、自定义的对象保存到redis中

一、操作string 、list 、map 对象

1、引入jar:

jedis-2.1.0.jar

2、代码

/**

@param args

*/

public static void main(String[] args) {

//连接redis服务

Jedis jedis = new Jedis("192.168.88.15",6379);

//密码验证-如果你没有设置redis密码可不验证即可使用相关命令

//        jedis.auth("abcdefg");

//简单的key-value 存储

jedis.set("redis", "myredis");

System.out.println(jedis.get("redis"));

//在原有值得基础上添加,如若之前没有该key,则导入该key

//之前已经设定了redis对应"myredis",此句执行便会使redis对应"myredisyourredis"

jedis.append("redis", "yourredis");

jedis.append("content", "rabbit");

//mset 是设置多个key-value值   参数(key1,value1,key2,value2,...,keyn,valuen)

//mget 是获取多个key所对应的value值  参数(key1,key2,key3,...,keyn)  返回的是个list

jedis.mset("name1","yangw","name2","demon","name3","elena");

System.out.println(jedis.mget("name1","name2","name3"));

//map

Map<String,String> user = new HashMap<String,String>();

user.put("name", "cd");

user.put("password", "123456");

//map存入redis

jedis.hmset("user", user);

//mapkey个数

System.out.println(String.format("len:%d", jedis.hlen("user")));

//map中的所有键值

System.out.println(String.format("keys: %s", jedis.hkeys("user") ));

//map中的所有value

System.out.println(String.format("values: %s", jedis.hvals("user") ));

//取出map中的name字段值

List<String> rsmap = jedis.hmget("user", "name","password");

System.out.println(rsmap);

//删除map中的某一个键值 password

jedis.hdel("user", "password");

System.out.println(jedis.hmget("user", "name", "password"));

//list

jedis.del("listDemo");

System.out.println(jedis.lrange("listDemo", 0, -1));

jedis.lpush("listDemo", "A");

jedis.lpush("listDemo", "B");

jedis.lpush("listDemo", "C");

System.out.println(jedis.lrange("listDemo", 0, -1));

System.out.println(jedis.lrange("listDemo", 0, 1));

//set

jedis.sadd("sname", "wobby");

jedis.sadd("sname", "kings");

jedis.sadd("sname", "demon");

System.out.println(String.format("set num: %d", jedis.scard("sname")));

System.out.println(String.format("all members: %s", jedis.smembers("sname")));

System.out.println(String.format("is member: %B", jedis.sismember("sname", "wobby")));

System.out.println(String.format("rand member: %s", jedis.srandmember("sname")));

//删除一个对象

jedis.srem("sname", "demon");

System.out.println(String.format("all members: %s", jedis.smembers("sname")));

}

二、将自定义对象保存到redis中:

1、自定义pojo 实现Serializable 接口:

package cn.mingyuan.redis;

import java.io.Serializable;

/**

* 测试用pojo,实现了Serializable,以便进行系列化操作

*

@author mingyuan

*

*/

public class Person implements Serializable {

private static final long serialVersionUID = -3562550857760039655L;

private String name;

private int age;

public Person(){}

public Person(String name, int age) {

super();

this.name = name;

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

@Override

public String toString() {

return "Person [name=" + name + ", age=" + age + "]";

}

}

2、测试类:

package cn.mingyuan.redis;

import java.io.ByteArrayInputStream;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import redis.clients.jedis.Jedis;

public class Test {

/**

@param args

@throws IOException

@throws ClassNotFoundException

*/

public static void main(String[] args) throws IOException,

ClassNotFoundException {

//        Jedis redis = new  Jedis("192.168.88.15");

Jedis redis = new Jedis("192.168.88.15", 6379);

// connect可以不要,因为在执行set操作的时候会先进行判断客户端是否于服务器端建立了连接,若无,则启动连接过程

redis.connect();

String set = redis.set("mingyuan", "1");

System.out.println(" set result \t" + set);

redis.incr("mingyuan");

String string = redis.get("mingyuan");

System.out.println(" get result of key ‘mingyuan‘ \t" + string);

// 下面是对对象进行存储的测试代码

ByteArrayOutputStream bos = new ByteArrayOutputStream();

ObjectOutputStream oos = new ObjectOutputStream(bos);

Person person = new Person("liudehua" ,22);

oos.writeObject(person);

byte[] byteArray = bos.toByteArray();

oos.close();

bos.close();

String setObjectRet = redis.set("mingyuan".getBytes(), byteArray);

System.out.println(" set object return \t" + setObjectRet);

byte[] bs = redis.get("mingyuan".getBytes());

ByteArrayInputStream bis = new ByteArrayInputStream(bs);

ObjectInputStream inputStream = new ObjectInputStream(bis);

Person readObject = (Person) inputStream.readObject();

System.out.println(" read object \t" + readObject.toString());

inputStream.close();

bis.close();

redis.disconnect();

}

}

时间: 2024-10-27 04:05:57

【redis,1】java操作redis: 将string、list、map、自定义的对象保存到redis中的相关文章

【redis,1】java操作redis: 将string、list、map、自己定义的对象保存到redis中

一.操作string .list .map 对象 1.引入jar: jedis-2.1.0.jar 2.代码 /** * @param args */ public static void main(String[] args) { //连接redis服务 Jedis jedis = new Jedis("192.168.88.15",6379); //password验证-假设你没有设置redispassword可不验证就可以使用相关命令 //        jedis.auth(&

nodejs express session用法(含保存到redis)

普通用法: 1 var express = require('express'); 2 var session = require('express-session'); 3 4 var app = express(); 5 6 app.use(session({ 7 name: 'test1', // 非常重要,用于区分两个系统的session 8 secret: 'test1 cat', 9 cookie: { maxAge: 5 * 60 * 60 * 1000 }, 10 resave:

session 保存到 redis 简单实现

参考资料: [session保存到redis简单实现]http://blog.csdn.net/ppt0501/article/details/46700221 [Redis学习]http://blog.csdn.net/can007/article/details/19848559

解决 php的session无法保存到redis

解决 php的session无法保存到redis php的session写入redis配置vim /etc/php-fpm.d/www.conf user = nginx group = nginxphp_value[session.save_handler] = Redisphp_value[session.save_path] = 'tcp://192.168.1.2:6688'php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache v

redis的安装和使用【2】redis的java操作

修改redis.conf# 配置绑定ip,作者机子为192.168.100.192,请读者根据实际情况设置bind 192.168.100.192#非保护模式protected-mode no保存重启 2.操作2.1 使用idea创建一个maven项目https://www.jianshu.com/p/042073b7710b 2.2 修改pom.xml加入下面的依赖: <dependency> <groupId>redis.clients</groupId> <

redis之java操作,与memerche对比分析

1. jedis的操作方法主要包括 key.string.list.set.sortedlist.hash等,参考博文:http://www.cnblogs.com/edisonfeng/p/3571870.html 2. 本篇重点介绍一下jedis与memerche的对比 2.1  jedis是持久化的,拥有复杂数据操作类型,包括list.hash等,并且jedis的核心是多线程操作,并支持切片连接池对象 2.2 memerche是非持久化的内存数据库,只有key.value类型的基本操作,v

转载 mvc中 将session保存到redis中 实现共享session

1 <system.web> 2 <authentication mode="None" /> 3 <compilation debug="true" targetFramework="4.5" /> 4 <httpRuntime targetFramework="4.5" /> 5 <sessionState mode="Custom" customP

Asp.net Session保存到Redis: 使用 RedisSessionStateProvider

Install-Package Microsoft.Web.RedisSessionStateProvider 依赖于: Dependencies StackExchange.Redis.StrongName (>= 1.0.488) 1 <system.web> 2 <authentication mode="None" /> 3 <compilation debug="true" targetFramework="4

把php session 会话保存到redis

php的session会话默认时以文件形式保存在php.ini配置文件设置的会话缓存目录,文件保存会话的效率很低,每当每个用户登录一次就会在服务器上生成一个唯一的session_id文件,当用户登录量达到几十万级别的时候,就会有几十万个文件在服务器生成,这时候磁盘的会话目录的IO读写会非常的慢,导致用户登录时程序会花费大量的时间在会话文件的读写上.当大量的用户登录时读写能力不够,导致的文件是会被第一个操作session的进程锁定,其他请求阻塞.请求会挂起在session_start()直到ses