Windows10安装使用redis

一、下载redis

地址:https://github.com/microsoftarchive/redis/releases

查看win是否安装redis 查看电脑是否安装redis_数据

二、解压安装

查看win是否安装redis 查看电脑是否安装redis_数据_02

打开redis.windows-service.conf文件修改密码

查看win是否安装redis 查看电脑是否安装redis_redis_03

打开命令行窗口,安装和注册redis(安装命令和启动命令均需要在redis的根目录下执行)

安装命令

redis-server.exe --service-install redis.windows.conf --loglevel verbose

启动命令

redis-server.exe  --service-start

关闭命令

redis-server.exe  --service-stop

查看win是否安装redis 查看电脑是否安装redis_System_04

启动后可在服务中查看是否启动成功

(右击我的电脑----管理----服务和应用程序----服务----)

查看win是否安装redis 查看电脑是否安装redis_System_05

三、命令行使用redis

新建一个命令行窗口执行下述命令

redis-cli.exe -h 127.0.0.1 -p 6379

查看win是否安装redis 查看电脑是否安装redis_数据_06

四、使用Jedis操作redis

新建Jedis对象连接redis

public static void main(String[] args) {
    //连接本地redis,端口默认6379
    Jedis jedis = new Jedis("127.0.0.1");
    //获得本地redis端口号
    System.out.println(jedis.getClient().getPort());
    //测试
    System.out.println(jedis.ping());
}

查看win是否安装redis 查看电脑是否安装redis_数据_07

操作String类型

//操作String
    public static void operaString(Jedis jedis){
        //添加一条数据
        jedis.set("username","LiMing");
        jedis.set("age","18");
        //添加多条数据
        //参数奇数为key,偶数为value
        jedis.mset("hobby","football","sex","man");
        //获取一条数据
        System.out.println(jedis.get("username"));
        //获取多条数据
        List<String> mget = jedis.mget("username", "age", "sex");
        for (String s : mget) {
            System.out.print(s+",");
        }
        //删除
        //jedis.del("username");
    }

查看win是否安装redis 查看电脑是否安装redis_jedis_08

操作List类型

//操作list类型
    public static void operalist(Jedis jedis){
        //从左侧添加
        jedis.lpush("number","one","two","three","four","five");
        //从右侧添加
        jedis.rpush("number","six","seven","eight");
        //获取下标范围内的值
        List<String> number = jedis.lrange("number", 1, 3);
        for (String s : number) {
            System.out.println(s);
        }
        //获取总条数
        Long llen = jedis.llen("number");
        System.out.println("总数:" + llen);
        // 删除单条 删除列表中第一次出现的 two
        // jedis.lrem("number", 1, "two");
        // 删除多条
        // jedis.del("number");
    }

查看win是否安装redis 查看电脑是否安装redis_查看win是否安装redis_09

操作Hash类型

//操作hash类型
    public static void operahash(Jedis jedis){
        /**
         * 添加一条数据
         * 参数一:redis的key值
         * 参数二:hash的key值
         * 参数三:hash的value值
         */
        jedis.hset("exphash","username","ZhangSan");
        //添加多条数据
        Map<String,String> map = new HashMap();
        map.put("age","20");
        map.put("sex","man");
        map.put("hobby","swimming");
        jedis.hmset("exphash",map);
        //获取一条数据
        String name = jedis.hget("exphash","username");
        System.out.println(name);
        //获取多条数据
        List<String> list = jedis.hmget("exphash", "age", "sex", "hobby");
        for (String s : list) {
            System.out.println(s);
        }
        //获取hash中的所有数据
        Map<String, String> exphash = jedis.hgetAll("exphash");
        for (Map.Entry<String, String> entry : exphash.entrySet()) {
            System.out.println("key:"+entry.getKey()+"value:"+entry.getValue());
        }
        //删除
        //jedis.hdel("exphash","username");
    }

查看win是否安装redis 查看电脑是否安装redis_jedis_10

操作Set类型

//操作set类型
public static void operaset(Jedis jedis){
    //存值
    jedis.sadd("expset","aaa","bbb","ccc","ddd","eee");
    //取出所有值
    Set<String> expset = jedis.smembers("expset");
    for (String s : expset) {
        System.out.print(s + ",");
    }
    // 删除
    //jedis.srem("letters", "aaa", "bbb");
}

查看win是否安装redis 查看电脑是否安装redis_System_11

操作SortSet类型

//操作sortset类型
public static void operasortset(Jedis jedis){
    Map<String,Double> expsortset = new HashMap();
    expsortset.put("set1",1D);
    expsortset.put("set2",2D);
    expsortset.put("set3",3D);
    expsortset.put("set4",4D);
    expsortset.put("set5",5D);
    //添加数据
    jedis.zadd("expsortset",expsortset);
    // 获取数据
    Set<String> scores = jedis.zrange("expsortset", 1, 3);
    for (String score: scores) {
        System.out.print(score+",");
    }
    // 获取总条数
    Long total = jedis.zcard("expsortset");
    System.out.println("总数:" + total);
    // 删除
    //jedis.zrem("expsortset", "set1", "set3");
}

查看win是否安装redis 查看电脑是否安装redis_数据_12

库操作

//库操作
public static void testAll(Jedis jedis){
    //获得当前库的key数量
    System.out.println(jedis.dbSize());
    //获得所有key的名称
    Set<String> keys = jedis.keys("*");
    for (String key : keys) {
        System.out.println(key);
    }
}

事务

//事务
public static void operamult(Jedis jedis){
    Transaction tx = jedis.multi();
    // 开启事务
    tx.set("mult", "11111");
    // 提交事务
    tx.exec();
    // 回滚事务
    tx.discard();
}

序列化对象存储

对象类

class User implements Serializable{

    private static final long serialVersionUID = -5953057745560963565L;
    private String username;
    private Integer age;
    private String sex;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                '}';
    }
}

序列化工具类

//序列化工具类
class serialUtils{
    //序列化
    public static byte[] serialize(Object object) {
        //对象操作流
        ObjectOutputStream oos = null;
        //字节数组输出流对象
        ByteArrayOutputStream BOutput = null;
        try {
            BOutput = new ByteArrayOutputStream();
            oos = new ObjectOutputStream(BOutput);
            //将对象写入操作流
            oos.writeObject(object);
            //将操作流转换为字节数组
            byte[] bytes = BOutput.toByteArray();
            return bytes;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    //反序列化
    public static Object unserialize(byte[] bytes) {
        if(bytes == null){
            return null;
        }
        ByteArrayInputStream BInput = null;
        try {
            BInput = new ByteArrayInputStream(bytes);
            ObjectInputStream ois = new ObjectInputStream(BInput);
            return ois.readObject();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

测试

public static void main(String[] args) {
    //连接redis
    Jedis jedis = new Jedis("127.0.0.1");
    //构建对象
    User user = new User();
    user.setKeyid("user1");
    user.setUsername("ZhangSan");
    user.setAge(15);
    user.setSex("man");
    //序列化信息
    byte[] key = serialUtils.serialize(user.getKeyid());
    byte[] value = serialUtils.serialize(user);
    //存储
    jedis.set(key,value);
    //取出
    byte[] bytes = jedis.get(key);
    //反序列化
    User resultuser = (User) serialUtils.unserialize(bytes);
    System.out.println(resultuser);
}、

查看win是否安装redis 查看电脑是否安装redis_jedis_13