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();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值