redis操作
决定从今天开始写技术blog,不过并没有好好准备,只得从自己笔记中抽出来了。
1.查询key
a. 所有key: keys *;
b. 包含特定内容的key: test:-:test;
2. 删除key
a. del key
b. 用命令redis-cli -p 6381 keys te*:t | xargs redis-cli -p 6381 del,或者 cat test.txt | xargs redis-cli -p 6381 del,其中test.txt中每行为一个key
3. 批量导入
a. 命令cat test.txt | redis-cli -p 6381 --pipe
b. 其中,test.txt中每条数据的格式为:
*3 // 表示参数个数为3
$5 // 表示第一个参数长度为5个字节
lpush // 第一个参数(redis 命令)
$7 // 第二个参数长度
wdmyong // 一般为key
$9 // 第三个参数长度
123456789 // 最后一个参数一般为值
c. 说明:hashdao的操作时有四个参数,具体与上类比即可
4. 从操作
a. 作主从连接,redis-cli -p 6381 slaveof 192.168.110.108 6381,表示本机作为192.168.110.108的从
b. 取消主从关系,redis-cli -p 6381 slaveof no one
5. 代码
@Override
public boolean sismember(byte[] key, byte[] member) {
Jedis readJedis = null;
Boolean result = false;
JedisPool readPool = null;
try {
readPool = getRandomReadPool();
readJedis = getReadJedis(readPool);
if (readJedis == null) {
LOGGER.warn("获取缓存异常");
return false;
}
result = readJedis.sismember(key, member);
} catch (Exception e) {
LOGGER.error(null, e);
if (readPool != null) {
readPool.returnBrokenResource(readJedis);
}
} finally {
if (readPool != null) {
readPool.returnResource(readJedis);
}
}
return result;
}
public boolean sismember(String key, String member) {
return sismember(SafeEncoder.encode(key), SafeEncoder.encode(member));
}