`
yuzhi2217
  • 浏览: 36602 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

redis - String字符串操作

阅读更多
import java.util.List;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import redis.clients.jedis.Jedis;


/** 
 * jedis String 类型操作 
 * @author http://blog.csdn.net/java2000_wl 
 * @version <b>1.0</b> 
 */  
public class RedisStringTest {

	private Jedis jedis;
	
	/**
	 * 初始化连接
	 * <br>------------------------------<br>
	 */
	@Before
	public void before() {
		jedis = new Jedis("127.0.0.1");
		jedis.auth("java2000_wl");
	}
	
	/**
	 * 断开连接
	 * <br>------------------------------<br>
	 */
	@After
	public void after() {
		jedis.disconnect();
	}
	
	/**
	 * set 如果存在相同的key 覆盖旧值</br>
	 * 总是返回OK
	 * <br>------------------------------<br> 
	 */
	@Test
	public void testSet() {
		String result = jedis.set("blog", "java2000_wl");
		print(result);
		jedis.set("blog", "java2000_wl_new");
		print(result);
	}
	
	/**
	 * setnx 如果key存在 不做任何操作  返回0, </br>
	 * 		   如果key不存在  设置值成功 返回1
	 * <br>------------------------------<br> 
	 */
	@Test
	public void testSetnx() {
		long result = jedis.setnx("blog1", "java2000_wl");
		print(result);
	}
	
	/**
	 * setex 设置值  并指定键值对应的有效期  单位为秒</br>
	 * 如果key 存在 覆盖旧值  成功返回 OK
	 * <br>------------------------------<br> 
	 */
	@Test
	public void testSetex() {
		String result = jedis.setex("setex", 60, "setex_value");
		print(result);
	}
	
	/**
	 * setrange 通过key 和  offset 替换value </br>
	 * 例如:setex - > setex_value   
	 * jedis.setrange("setex", 6, "Setrange")
	 * </br>  
	 * 替换为 setex_Setrange
	 * <br>------------------------------<br> 
	 */
	@Test
	public void testSetrange() {
		// setex_value  被替换为: setex_Setrange
		long result = jedis.setrange("setex", 6, "Setrange");
		print(result);
		print(jedis.get("setex"));
	}
	
	/**
	 * mset 同时设置一个或多个 key-value对。
	 * 如果某个key-value 存在  会用新值覆盖原来的旧值, 总是成功, 成功返回OK
	 * <br>------------------------------<br>
	 */
	@Test
	public void testMset() {
		String result = jedis.mset("key1", "value1", "key2", "value2", "key..", "value..");
		print(result);
	}
	
	/**
	 * msetnx 同时设置一个或多个 key-value对。
	 * 如果某个key-value存在   返回0  所有操作都会回滚, 如果成功 返回ok
	 * <br>------------------------------<br>
	 */
	@Test
	public void testMsetnx() {
		long result = jedis.msetnx("msetnxKey1", "msetnxValue1", "msetnxKey2", "msetnxValue2");
		print(result);
	}
	
	/**
	 * get 通过key 获取对应的value  如果key不存在 返回nil
	 * <br>------------------------------<br>
	 */
	@Test
	public void testGet() {
		String value = jedis.get("msetnxKey1");
		print(value);
	}
	
	/**
	 * getset 通过key 获取对应的value 然后通过key 设置信的value
	 * <br>------------------------------<br>
	 */
	@Test
	public void testGetSet() {
		String value = jedis.getSet("key1", "value_new");
		print(value);
		
		value = jedis.get("key1");
		print(value);
	}
	
	/**
	 * 返回key对应的value  在由start 和 end 两个偏移量截取
	 * <br>------------------------------<br>
	 */
	@Test
	public void testGetrange() {
		String value = jedis.getrange("key1", 6, 8);
		print(value);
	}
	
	/**
	 * 返回多个key 对应的value
	 * <br>------------------------------<br>
	 */
	@Test
	public void testMget() {
		List<String> list = jedis.mget("key1", "key2", "key3");
		print(list);
	}
	
	/**
	 * 对key对应的value  做+1操作  返回+1后的新值
	 * <br>------------------------------<br>
	 */
	@Test
	public void testIncr() {
		jedis.set("incr", "2");
		// 返回33
		Long result = jedis.incr("incr");
		print(result);
	}
	
	/**
	 * 对key对应的value 加指定值 返回新值  如果key不存在 认为原来的value为0
	 * <br>------------------------------<br>
	 */
	@Test
	public void testIncrBy() {
		jedis.set("incrBy", "2");
		// 返回7
		Long result = jedis.incrBy("incrBy", 5);
		print(result);
	}
	
	/**
	 * 对key对应的value 做-1操作  返回新值
	 * <br>------------------------------<br>
	 */
	@Test
	public void testDecr() {
		// 7 - 1
		Long result = jedis.decr("incrBy");
		print(result);
	}
	
	/**
	 * 对key对应的value 减去指定值  返回新值  如果key不存在    认为原来的value为0
	 * <br>------------------------------<br>
	 */
	@Test
	public void testDecrBy() {
		Long result = jedis.decrBy("DecrBy", 5);
		print(result);
	}
	
	/**
	 * 给指定的key的值追加, 返回新字符串的长度
	 * <br>------------------------------<br>
	 */
	@Test
	public void testAppend() {
		// 追加前 value_new
		String old = jedis.get("key1");
		print(old);
		// 追加后  value_new124
		Long long1 =jedis.append("key1", "124");
		print(long1);
	}
	
	/**
	 * 取得指定key的value值的长度
	 * <br>------------------------------<br>
	 */
	@Test
	public void testStlen() {
		long len = jedis.strlen("key1");
		print(len);
	}
	
	void print(Object object) {
		System.out.println(object.toString());
	}
}

 

分享到:
评论

相关推荐

    redis-5.0.4.tar.gz下载及redis安装过程

    redis安装 1: 下载redis-5.0.4.tar.gz 2: 解压源码并进入目录 tar zxvf redis-5.0.4.tar.gz cd redis-5.0.4 ...String(字符串)类型: set name lijie #设置键name的值为lijie get name #获取name的值。

    Redis稳定版 Redis-x64-5.0.14.1.zip

    1. **数据类型**: Redis支持五大数据类型:字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set),这些类型为各种应用场景提供了丰富的选择。 2. **持久化**: Redis提供了两种主要的持久化...

    redis-windows-7.0.10.zip

    Redis的数据结构丰富多样,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。这些数据结构的设计使得Redis在处理多种数据操作时展现出高效性能。例如,字符串可以用于存储...

    Redis-x64-5.0.14 windows

    Redis支持多种数据类型,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。这些数据类型允许用户以灵活的方式存储和操作数据。 在Windows上安装Redis-x64-5.0.14,首先需要...

    Redis-x64-3.2.100-稳定版.rar

    6. **数据结构与操作**:Redis 支持多种数据结构,如 String(字符串)、Hash(哈希表)、List(列表)、Set(集合)、Sorted Set(有序集合)。例如,`SET key value` 用于设置键值对,`GET key` 用于获取键对应的...

    redis-windows-7.0.4.tar.gz

    1. **数据类型**:Redis支持五种基本数据类型,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set),这些类型提供了丰富的操作命令,满足各种应用场景。 2. **高性能**:Redis通过内存...

    redis-windows-redis7.0.5.zip

    它的设计目标是速度和数据持久化,支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等,这使得Redis在处理复杂的数据操作时具有很高的效率。 标题"redis-windows-redis7.0.5.zip"表明这是一个针对Windows...

    nicolasff-phpredis-2.1.3-167-ga5e53f1.tar.gz

    - 字符串(String):`set`, `get`, `incr`, `decr` - 哈希(Hash):`hSet`, `hGet`, `hMSet`, `hMGet` - 列表(List):`lPush`, `rPush`, `lPop`, `rPop` - 集合(Set):`sAdd`, `sRemove`, `sMembers` - 有序集合...

    最新版windows windows-redis-6.2.7.zip

    Redis支持多种数据结构,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。这些数据结构使得Redis在处理各种场景时非常灵活。 5. **持久化**: Redis提供两种持久化方式:RDB(快照...

    redis-desktop-manager-0.9.3.817.rar

    Redis支持多种数据结构,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set),这些数据结构的设计使得Redis在处理复杂的数据操作时表现优秀。 此外,“缓存”标签则暗示了Redis...

    redis-2.6 windos32/64

    4. **数据类型**:Redis提供了丰富的数据类型,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set),这些数据类型使得Redis能够适应各种应用场景。 5. **主从复制**:Redis...

    redis-6.0.5.tar.gz

    7. **数据类型**:Redis支持五种基本数据类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)和Sorted Set(有序集合)。每种类型都有其特定的操作命令,比如`LPUSH`向列表头部添加元素,`SADD`向集合...

    redis-windows-x64各个版本以及安装使用教程及redis-desktop-manager安装包可视化管理

    - 数据类型:Redis支持字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)等多种数据类型。 - 持久化:Redis提供RDB(快照)和AOF(Append Only File)两种持久化方式,确保数据安全。RDB...

    redis-desktop-manager两个安装包(版本2019.5.0和0.9.3.817)

    支持多种数据类型,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。 3. **数据导入与导出**:可以将Redis数据库的数据导出到文件,或者从文件导入数据到Redis,方便数据...

    Redis-x64-window.zip

    - String:基本类型,存储字符串,支持简单的数学运算。 - List:列表,可以存储多个有序的元素。 - Set:集合,无序且不允许重复的元素集合。 - Sorted Set:有序集合,集合基础上增加了分数字段,可以按分数...

    redis-cplusplus-client.zip

    Redis 的优点在于其支持多种数据结构,如字符串、哈希表、列表、集合和有序集合,这使得它在处理实时数据和缓存场景中表现出色。`redis-cplusplus-client` 库则提供了丰富的 API,用于执行 Redis 命令,如 GET、SET...

    Redis windows解压版 Redis-x64-3.2.100.zip

    Redis支持多种数据结构,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set),这使得它在多种场景下都能发挥出强大的功能。例如,可以用作缓存来提高数据访问速度,作为消息队列实现异步...

    redis-2.4.5-win32-win64

    - **数据类型**:Redis支持丰富的数据类型,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。 - **持久化**:Redis可以通过RDB(快照)或AOF( Append Only File)方式...

    redis-desktop-manager-0.8.3.3850.rar

    2. **键值浏览**:通过树形视图查看和管理数据库中的键值对,支持多种数据类型,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。 3. **数据操作**:进行CRUD操作,即创建...

    Redis-x64-5.0.10.rar

    1. **数据类型**: 支持字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)等多种数据结构,适合处理各种应用场景。 2. **持久化**: 提供了RDB(快照)和AOF(Append Only File)两种持久化...

Global site tag (gtag.js) - Google Analytics