配置文件请看上篇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();
}
}