java 监听redis map是否有修改

java 监听redis map是否有修改,第1张

/**

* @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()

}

}

看来你是做日志记录,在SQL server 2005中建立一个触发器(delete,update\insert),针对table1,在触发器的代码中加上数据拷贝的SQL语句就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9565165.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存