Java实现Redis的字符串(String)命令

配置文件请看上篇Java实现redis  https://blog.csdn.net/qq_41934990/article/details/81612180

下面测试redis字符串类型,注释里面的代码是linux中redis命令

package com.huadian.String;

import com.huadian.redisUntil.JedisPoolUntil;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import redis.clients.jedis.Jedis;

import java.util.List;

public class StringDemo {
    private Jedis jedis = null;
    @Before
    public void before(){
         jedis = JedisPoolUntil.getJedis();
    }

    /**
     * Redis SET 命令用于设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。
     * redis 127.0.0.1:6379> SET KEY_NAME VALUE
     */
    @Test
    public void add(){
        Jedis jedis = JedisPoolUntil.getJedis();
        String set = jedis.set("name", "李四");
        System.out.println(set);
    }

    /**
     * Redis Get 命令用于获取指定 key 的值。如果 key 不存在,返回 nil 。如果key 储存的值不是字符串类型,返回一个错误。
     * redis 127.0.0.1:6379> GET KEY_NAME
     */
    @Test
    public void get(){
        Jedis jedis = JedisPoolUntil.getJedis();
        String set = jedis.get("name");
        System.out.println(set);
    }

    //删除
    @Test
    public void delete(){
        Jedis jedis = JedisPoolUntil.getJedis();
        Long address= jedis.del("name","age");
        System.out.println(address);
    }

    /**
     * 修改:字符串类型实际的值存的数字
     * increase、decrease  自增/减  key
     * incrBy/decrBy增加/减少 一个数 参数key  更新
     * 返回值,两者都是增加之后的数字
     * 如果这个值不识数,调用以上方法会抛出异常
     *
     * Redis Incrbyfloat 命令为 key 中所储存的值加上指定的浮点数增量值。

     如果 key 不存在,那么 INCRBYFLOAT 会先将 key 的值设为 0 ,再执行加法操作。

     redis 127.0.0.1:6379> INCRBYFLOAT KEY_NAME INCR_AMOUNT


     Redis Decr 命令将 key 中储存的数字值减一。

     如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。

     如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

     本操作的值限制在 64 位(bit)有符号数字表示之内。

     redis 127.0.0.1:6379> DECR KEY_NAME


     Redis Decr 命令将 key 中储存的数字值减一。

     如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。

     如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

     本操作的值限制在 64 位(bit)有符号数字表示之内。

     redis 127.0.0.1:6379> DECR KEY_NAME


     Redis Decrby 命令将 key 所储存的值减去指定的减量值。

     如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作。

     如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

     本操作的值限制在 64 位(bit)有符号数字表示之内。

     redis 127.0.0.1:6379> DECRBY KEY_NAME DECREMENT_AMOUNT
     */
    @Test
    public void modify(){
        Jedis jedis = JedisPoolUntil.getJedis();
        String s = jedis.get("age");
        System.out.println(s);
        jedis.incr("age");
        Long age = jedis.incrBy("age", 20);
        System.out.println(age);
        String s1 = jedis.get("age");

    }

    /**
     * 字符产拼接
     * append key value 拼接在原有字符串后面
     * 返回值:long 拼接之后字符串的长度
     *
     * Redis Getrange 命令用于获取存储在指定 key 中字符串的子字符串。字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。
     * redis 127.0.0.1:6379> GETRANGE KEY_NAME start end
     */
    @Test
    public void modify1(){
        Jedis jedis = JedisPoolUntil.getJedis();
        Long append = jedis.append("age", "is not real");
        System.out.println(append);
        String age = jedis.getrange("age", 0, 4);
        System.out.println(age);
    }

    /**
     * Redis Getset 命令用于设置指定 key 的值,并返回 key 旧的值。
     * redis 127.0.0.1:6379> GETSET KEY_NAME VALUE
     */
    @Test
    public void getset(){
        String set = jedis.getSet("age", "is not real");
        System.out.println(set);
        /**
         * Redis Getbit 命令用于对 key 所储存的字符串值,获取指定偏移量上的位(bit)。
         * redis 127.0.0.1:6379> GETBIT KEY_NAME OFFSET
         */
        Boolean age = jedis.getbit("age",2 );
        System.out.println(age);
        /**
         * Redis Mget 命令返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil
         * redis 127.0.0.1:6379> MGET KEY1 KEY2 .. KEYN
         */
        List<String> mget = jedis.mget("age");
        System.out.println(mget);

        /**
         * Redis Setbit 命令用于对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
         * redis 127.0.0.1:6379> Setbit KEY_NAME OFFSET
         */
        Boolean age1 = jedis.setbit("age",0, "is not real");
        System.out.println(age1);

        /**
         * Redis Setex 命令为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值。
         * redis 127.0.0.1:6379> SETEX KEY_NAME TIMEOUT VALUE
         */
        String setex = jedis.setex("age", 60, "not");
        System.out.println(setex);

        /**
         * Redis Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值。
         * redis 127.0.0.1:6379> SETNX KEY_NAME VALUE
         */
        Long age2 = jedis.setnx("age", "ages");
        System.out.println(age2);
    }

    /**
     * Redis Setrange 命令用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始。
     * redis 127.0.0.1:6379> SETRANGE KEY_NAME OFFSET VALUE
     */
    @Test
    public void setrange(){
        Long setrange = jedis.setrange("age", 4, "no real");
        System.out.println(setrange);


        /**
         * Redis Strlen 命令用于获取指定 key 所储存的字符串值的长度。当 key 储存的不是字符串值时,返回一个错误。
         * redis 127.0.0.1:6379> STRLEN KEY_NAME
         */
        Long age = jedis.strlen("age");
        System.out.println(age);

        /**
         * Redis Mset 命令用于同时设置一个或多个 key-value 对。
         * redis 127.0.0.1:6379> MSET key1 value1 key2 value2 .. keyN valueN
         */
        String mset = jedis.mset("age", "she is beautiful girl");
        System.out.println(mset);

        /**
         * Redis Msetnx 命令用于所有给定 key 都不存在时,同时设置一个或多个 key-value 对。
         * redis 127.0.0.1:6379> MSETNX key1 value1 key2 value2 .. keyN valueN
         */

        /**
         * Redis Psetex 命令以毫秒为单位设置 key 的生存时间。
         * redis 127.0.0.1:6379> PSETEX key1 EXPIRY_IN_MILLISECONDS value1
         */




    }



    @After
    public void after(){
        Jedis jedis = JedisPoolUntil.getJedis();
    }
}
发布了105 篇原创文章 · 获赞 536 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qq_41934990/article/details/81623939