本文主要向大家介绍了SQLServer数据库之NoSQL数据库之-------Redis(二),通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助。
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。下面将会给出实例:1.Java操作Redis键(key)
package com.redis1;import java.util.List;import redis.clients.jedis.Jedis;/**
* Redis keys实例
* @author dell
*
*/public class RedisKeys { public static void main(String[] args) { //连接redis本地服务 Jedis jedis = new Jedis(""127.0.0.1""); System.out.println(""redis本地服务连接成功!""); /*Redis Bgsa
ve 命令用于在后台异步保存当前数据库的数据到磁盘。
BGSAVE 命令执行之后立即返回 OK ,然后 Redis fork 出一个新子进程,
原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。
*/ System.out.println(jedis.bgsave()); //Redis Echo 命令用于打印给定的字符串。 System.out.println(jedis.echo(""redis"")); //Redis Flushall 命令用于清空整个 Redis 服务器的数据(删除所有数据库的所有 key )。 System.out.println(jedis.flushAll()); //Redis Flushdb 命令用于清空当前数据库中的所有 key。 System.out.println(jedis.flushDB()); /*
Redis Ping 命令使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG 。
通常用于测试与服务器的连接是否仍然生效,或者用于测量延迟值。
*/ System.out.println(jedis.ping()); //Redis Info 命令以一种易于理解和阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。 System.out.println(""\ninfo----->""+jedis.info()); //Redis RANDOMKEY 命令从当前数据库中随机返回一个 key 。 System.out.println(jedis.randomKey()); //Redis Save 命令执行一个同步保存操作,将当前 Redis 实例的所有数据快照(snapshot)以 RDB 文件的形式保存到硬盘。 System.out.println(jedis.save()); //Redis Unwatch 命令用于取消 WATCH 命令对所有 key 的监视。 System.out.println(jedis.unwatch()); /*
Redis Multi 命令用于标记一个事务块的开始。
事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行。
*/ System.out.println(jedis.multi()); /*Redis Quit 命令用于关闭与当前客户端与redis服务的连接。
一旦所有等待中的回复(如果有的话)顺利写入到客户端,连接就会被关闭。*/
System.out.println(jedis.quit()); }}
2.Java操作Redis列表(list)
package com.redis1;import java.util.List;import redis.clients.jedis.BinaryClient;import redis.clients.jedis.Jedis;/**
* redis list数据类型
*
* @author dell
*
*/public class RedisList { public static void main(String[] args) { // 连接本地的 Redis 服务 Jedis jedis = new Jedis(""localhost""); System.out.println(""redis本地服务连接成功!""); /*
* lpush 表示从list的头部插入元素 rpush 表示从list的尾部插入元素 linsert 在列表的某个元素前或者后插入元素
* index 表示列表中index位置的元素 llen 返回列表的长度 lpop list 0 -1
* 表示从mylist列表的头部开始删除所有元素 rpop list 0 -1 表示从mylist列表的尾部开始删除所有元素 lrange
* list 0 -1 //使用lrange取出元素 0表示从头部第一个元素,-1表示从尾部第一个元素取出,lrange mylist 0
* -1 表示取出mylist中的所有数据
*/ // 存储数据到列表中
jedis.lpush(""SQL"", ""Redis"");
jedis.lpush(""SQL"", ""Mongodb"");
jedis.lpush(""SQL"", ""Mysql"");
jedis.linsert(""SQL"", BinaryClient.LIST_POSITION.BEFORE, ""MySql"", ""java"");
jedis.rpush(""SQL"", ""SqlServer"");
jedis.rpush(""SQL"", ""Oracle"");
jedis.linsert(""SQL"", BinaryClient.LIST_POSITION.BEFORE, ""MySql"", ""java""); // Redis Lpushx 将一个或多个值插入到已存在的列表头部,列表不存在时操作无效。 System.out.println(jedis.lpushx(""SQL"", ""Redis1"")); // 获取存储的数据并输出 List list = jedis.lrange(""SQL"", 0, -1); for (int i = 0; i
jedis.del(""SQL""); System.out.println(""删除了redis列表!""); // 获得列表的长度 System.out.println(""redis列表长度为:"" + jedis.llen(""SQL"")); // 列表下标从0开始 System.out.println(""redis列表下标为5的元素是:"" + jedis.lindex(""SQL"", 5)); /*
* Redis Ltrim 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。 下标 0
* 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2
* 表示列表的倒数第二个元素,以此类推。
*/ System.out.println(jedis.ltrim(""SQL"", 0, 4)); }}
3.Java操作Redis集合(set)package com.redis1;import java.util.Set;import redis.clients.jedis.Jedis;/**
* Redis set数据类型
* @author dell
*
*/public class RedisSet { public static void main(String[] args) { Jedis jedis = new Jedis(""127.0.0.1"",6379); //set方法用于向redis数据库中添加设置数据
jedis.set(""k1"", ""v1"");
jedis.set(""k2"", ""v2"");
jedis.set(""k3"", ""v3""); //get方法用于获取某个键所对应的值 System.out.println(jedis.get(""k3"")); //del方法用于删除某个键所对应的值 System.out.println(jedis.del(""k1"")); //getSet方法用户获取某个键所对应的值,键不存在,返回null;键存在,返回对应的值 System.out.println(jedis.getSet(""k4"", ""v4"")); /*getrange(key, startOffset, endOffset)方法用于获取存在在key中字符串的子字符串
字符串的截取范围由start和end两个偏移量决定
*/ System.out.println(jedis.getrange(""k2"", 1, -1)); //lpop方法用于移除并返回列表的第一个元素 System.out.println(jedis.lpop(""k1"")); //rpop方法用于移除并返回列表的最后一个元素 System.out.println(jedis.rpop(""k5"")); //返回集合的长度 Set sets = jedis.keys(""*""); System.out.println(sets.size()); }}
4.Java操作Redis字符串(String)package com.redis1;import redis.clients.jedis.Jedis;/**
* Redis String数据类型
* @author dell
*
*/public class RedisString { public static void main(String[] args) { //连接本地redis服务 Jedis jedis = new Jedis(""127.0.0.1""); System.out.println(""redis服务连接成功!""); //设置redis字符串数据
jedis.set(""type"", ""string""); //获取存储的数据并输出 System.out.println(""redis存储的值为:""+jedis.get(""type"")); }}
5.Java 操作Redis排序
packagecom.redis2;importorg.junit.Before;importorg.junit.Test;importredis.clients.jedis.Jedis;/**
* Redis排序
* @author dell
*
*/publicclassJava_RedisTest{privateJedisjedis;@Beforepublicvoidsetup(){//连接redis服务器jedis=newJedis(""127.0.0.1"",6379);//权限认证//jedis.auth(""admin"");}@Testpublicvoidtest()throwsInterruptedException{//jedis排序//注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的)jedis.del(""a"");//先清除数据,在加入数据进行测试jedis.rpush(""a"",""1"");jedis.rpush(""a"",""6"");jedis.rpush(""a"",""4"");jedis.rpush(""a"",