在bash中和Java中使用Redis
命令行中使用方法
- 初次进入
mxd@mxd-TM1613:~$ redis-cli //进入
127.0.0.1:6379> AUTH 110 //输入密码
OK
模拟报文发送
用Telnet进行模拟客户端发送
*表示开始,3是参数数量
。。。。。。。
Redis 默认有16个数据库,即16个database
Select 【数字】 转到第几个数据库
Dbsize 查看当前数据库有多少个key
Keys * 当前库的key查询出来
Flushdb 清除当前库
Flushall 清除所有库
Auth 【密码】 认证密码
Exists【key的名字】 判断某个key是否存在
Move key 【db序号】 将当前库的key剪切到指定db序号
Expire key【时间秒】 为给定的key设置过期时间,过期后会移除系统
Ttl key 查看还有多少秒过期,-1表示永远不过期,-2表示已过期
Type key 查看你的key是什么类型
Del key 删除key
批量键值对
mget key1 key2 // 返回一个列表
mset key1 m key2 x key2 d //分别给三个key赋值m x d
expire key1 5 //5s后key1 过期
setex key1 5 m //设定key的时候就把过期时间加上
SETNX key1 m //如果key1不存在就执行set创建
set age 30
incr age //age自增1
incrby age 5 //age自增5
- 查看进程,杀死进程
ps -ef | grep redis 可以查看正在运行的redis 进程
kill -9 XXX 也可以杀死进程
#lettuce使用redis
package redisTset;
import io.lettuce.core.RedisClient;
import io.lettuce.core.RedisFuture;
import io.lettuce.core.RedisURI;
import io.lettuce.core.api.StatefulRedisConnection;
import io.lettuce.core.api.async.RedisAsyncCommands;
import io.lettuce.core.api.sync.RedisCommands;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.concurrent.ExecutionException;
import static java.lang.System.in;
public class LettuceClient {
public static RedisURI redisUri = null;
public static RedisClient client = null;
public static StatefulRedisConnection<String, String> connect = null;
public static void main(String[] args) throws Exception {
LettuceClient lettuceClient = new LettuceClient();
//进行string类型的crud
lettuceClient.StringTest();
//进行list类型的crud
lettuceClient.ListTest();
// 进行list类型的crud
lettuceClient.hashTest();
// 进行list类型的crud
lettuceClient.setTest();
//进行list类型的crud
lettuceClient.zsetTest();
/* //异步方式
RedisAsyncCommands<String, String> redisAsync = connect.async();
RedisFuture<String> redisFuture = redisAsync.get("age");
try {
String a = redisFuture.get();
System.out.println("异步" + a);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
connect.close();
client.shutdown();*/
}
void StringTest() {
open();
//同步方式进行String类型增删改查
RedisCommands<String, String> commands = connect.sync();
Scanner scanner = new Scanner(in);
System.out.println("进行insert操作,请输入key:");
String key = scanner.next();
System.out.println("进行insert操作,请输入value:");
String next1 = scanner.next();
if ("OK" == commands.set(key, next1)) {
System.out.println(" insert success ");
} else System.out.println(" insert fail ");
System.out.println("进行delete操作,请输入key:");
key = scanner.next();
if (commands.del(key) == 1) {
System.out.println("success delete");
}
System.out.println("进行update操作,请输入key:");
key = scanner.next();
if (commands.get(key) != null) {
System.out.println("进行update操作,请输入value:");
if ("OK" == commands.set(key, scanner.next())) {
System.out.println("update success");
}
} else {
System.out.println("要update的key不存在");
}
//查询全部key
System.out.println("查询全部key:");
List<String> keys = commands.keys("*");
for (String s : keys) {
System.out.print(s + " ");
}
close();
}
void ListTest(){
open();
//同步方式进行String类型增删改查
RedisCommands<String,String> commands=connect.sync();
String key="books";
String[] books={"java","py","goLang"};
String[] books2={"java2","py2","goLang2"};
commands.rpush(key,books);
//出队一个
System.out.println("出队一个"+ commands.lpop(key));
//出栈一个
System.out.println("出队一个"+ commands.rpop(key));
commands.rpush(key,books);
//遍历
commands.lindex(key ,-1);
//update
commands.lset(key,0,"JAVA");
close();
}
void hashTest(){
open();
//同步方式进行String类型增删改查
RedisCommands<String,String> commands=connect.sync();
String key="hello";
//insert
commands.hset(key,"java","hello,java");
commands.hset(key,"py","hello ,py");
commands.hset(key,"goLong","hello,hoLong");
//delete
commands.hdel(key,"java");
//update
commands.hset(key,"java","HELLO,JAVA");
//query
Map<String, String> hgetall = commands.hgetall(key);
for (Map.Entry<String, String> stringStringEntry : hgetall.entrySet()) {
System.out.println(stringStringEntry);
}
close();
}
void setTest(){
open();
//同步方式进行String类型增删改查
RedisCommands<String,String> commands=connect.sync();
String key="bookss";
//insert
commands.sadd(key,"py");
commands.sadd(key,"java","go");
//delete
commands.spop(key);
//update就是先删除在增加
//query
Set<String> smembers = commands.smembers(key);
for (String smember : smembers) {
System.out.println(smember);
}
close();
}
void zsetTest(){
open();
//同步方式进行String类型增删改查
RedisCommands<String,String> commands=connect.sync();
String key="booksss";
//insert
commands.zadd(key,9.0 ,"hi,java");
commands.zadd(key,5.0 ,"hi,py");
commands.zadd(key,12.0 ,"hi,go");
//delete
commands.zrem(key,"hi,py");
//query,zrange是正序,zrevrange是逆序
List<String> zrange = commands.zrange(key, 0, -1);
System.out.println(zrange);
close();
}
public static void open() {
//设置URL,以及密码,和哪个库
redisUri = RedisURI.Builder.redis("localhost")
.withPassword("110").withDatabase(0)
.build();
//
//建立连接
client = RedisClient.create(redisUri);
connect = client.connect();
}
public static void close() {
connect.close();
client.shutdown();
}
}