有关Redis的数据类型使用方法

一加入jar包
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.1.0</version>
</dependency>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
</dependency>

二 启动redis 

命令错误 会出现 以下错误 请仔细看好命令

启动完成后的界面

三redis 数据类型的使用类

package com.sx.redisDemo;

import org.junit.Before;
import org.junit.Test;
import redis.clients.jedis.Jedis;

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

/**
 * Created by Administrator on 2018/12/4.
 */
public class RedisJava_01 {
    private Jedis jedis;

    //方法执行之前先调用
    @Before
    public void stup() {
        // localhost  本机地址
        jedis = new Jedis("localhost");

    }

    /**
     * redis 存储字符串
     */
    @Test
    public void redis_string() {
        //赋值 key——value
        jedis.set("name", "admin");
        //取值 打印admin
        System.out.println(jedis.get("name"));
        jedis.append("name", "全国通用密码");
        //拼接 打印为admin全国通用密码
        System.out.println(jedis.get("name"));
        //删除某个键
        jedis.set("admin", "adm");
        jedis.del("admin");
        //打印为null
        System.out.println(jedis.get("admin"));
//设置多个键值对
        jedis.mset("name", "小米", "age", "12", "QQ", "1111");
        jedis.incr("age");//对12 进行加1操作
        //打印  小米--13----1111
        System.out.println(jedis.get("name") + "--" + jedis.get("age") + "----" + jedis.get("QQ"));

    }

    /**
     * redis 操做Map
     */
    @Test
    public void redis_Mapf() {
        //声明
        Map<String, String> map = new HashMap<>();
        //赋值
        map.put("小米", "xiaomi");
        map.put("年龄", "22");
        map.put("性别", "男");
        jedis.hmset("user", map);

        //取出user中的name,执行结果:[minxr]-->注意结果是一个泛型的List
        //第一个参数是存入redis中map对象的key,后面跟的是放入map中的对象的key,后面的key可以跟多个,是可变参数
        List<String> rsmap = jedis.hmget("user", "小米", "年龄", "性别");
        System.out.println(rsmap);
        //删除key为性别的value
        jedis.hdel("user", "性别");
        //打印key 为性别的value
        System.out.println(jedis.hmget("user", "性别"));
        //返回key 为user 键的值得个数
        System.out.println(jedis.hlen("user"));
        //打印map中所有的key
        System.out.println(jedis.hkeys("user"));
        //打印map中所有的value
        System.out.println(jedis.hvals("user"));
        Iterator<String> iter = jedis.hkeys("user").iterator();
        while (iter.hasNext()) {
            String key = iter.next();
            System.out.println(key + ":" + jedis.hmget("user", key));
        }
    }

    /**
     * redis 操作List
     */
    @Test
    public void redis_List() {
        //移除所有内容
        jedis.del("java");
        System.out.println(jedis.lrange("java", 0, -1));
        //向key java放入数据
        jedis.lpush("java", "java");
        jedis.lpush("java", "PHP");
        jedis.lpush("java", "jQuery");
        //再取出所有数据jedis.lrange是按范围取出,
        // 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有
        System.out.println(jedis.lrange("java", 0, -1));


        jedis.del("java");
        System.out.println(jedis.lrange("java", 0, -1));
        //向key java放入数据
        jedis.rpush("java", "java");
        jedis.rpush("java", "PHP");
        jedis.rpush("java", "jQuery");
        //再取出所有数据jedis.lrange是按范围取出,
        // 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有
        System.out.println(jedis.lrange("java", 0, -1));


    }

    /**
     * redis 操作set
     */
    @Test
    public void redis_set() {
        //同一个key 在一个类中使用一定次数后 会抛异常
        //异常 : redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value
        jedis.sadd("HK", "java");
        jedis.sadd("HK", "PHP");
        jedis.sadd("HK", "jQuery");
        jedis.sadd("HK", "C");
        //移除
        jedis.srem("HK", "PHP");
        //获取所有的value
        System.out.println(jedis.smembers("HK"));
        //判断value 是否属于HK的集合元素
        System.out.println(jedis.sismember("HK", "C"));
        System.out.println(jedis.srandmember("HK"));
        //返回集合的个数
        System.out.println(jedis.scard("HK"));
    }

    /**
     * redis 排序
     */
    @Test
    public void test() {
        //jedis 排序
        //注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的)
        jedis.del("C");
        jedis.rpush("C", "3");
        jedis.rpush("C", "6");
        jedis.rpush("C", "2");
        jedis.rpush("C", "7");
        System.out.println(jedis.lrange("C", 0, -1));
        System.out.println(jedis.sort("C"));//小到大依次排序
        System.out.println(jedis.lrange("C", 0, -1));
    }


}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值