redis 相关知识
Posted potent_prince
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis 相关知识相关的知识,希望对你有一定的参考价值。
1. 什么是Redis
Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。Redis全称为:Remote Dictionary Server(远程数据服务),
该软件使用C语言编写,Redis是一个key-value存储系统,它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。
通常而言目前的数据库分类有几种,包括 SQL/NSQL,,关系数据库,键值数据库等等 等,分类的标准也不以,Redis本质上也是一种键值数据库的,但它在保持键值数据库简单快捷特点的同时,又吸收了部分关系数据库的优点。
从而使它的位置处于关系数据库和键值数 据库之间。Redis不仅能保存Strings类型的数据,还能保存Lists类型(有序)和Sets类型(无序)的数据,而且还能完成排序(SORT) 等高级功能,在实现INCR,SETNX等功能的时候,保证了其操作的原子性,
除此以外,还支持主从复制等功能。
2. Redis应用场景,它能做什么
众多语言都支持Redis,因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,这样可以大大节省系统直接读取磁盘来获得数据的I/O开销,更重要的是可以极大提升速度。
3.redis命令参考
http://redisdoc.com/
http://www.runoob.com/redis/redis-intro.html
https://www.cnblogs.com/edisonfeng/p/3571870.html
4 Redis的缺点
是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
5.java里redis相关用法
//连接本地的 Redis 服务
Jedis jedis = new Jedis("10.0.34.52",6379);
jedis.auth("");
System.out.println("Connection to server sucessfully");
//查看服务是否运行
System.out.println("Server is running: " + jedis.ping());
System.out.println("增加key01:值value:你好redis"+jedis.set("01", "你好redis"));
System.out.println("增加key01:值value:你好redis"+jedis.set("quchangyu","你好redis"));
System.out.println("你在吗:"+jedis.exists("01"));
Set<String> keys = jedis.keys("*");
Iterator<String> iterator = keys.iterator();
while(iterator.hasNext()){
String next = iterator.next();
// System.out.println(jedis.get(next));
}
System.out.println(jedis.get("01"));
jedis.set("01","修改后你好redis");
System.out.println(jedis.get("01"));
jedis.sadd("aaa","value+aaa1");
jedis.sadd("aaa","value+aaa2");
jedis.sadd("aaa","value+aaa3");
jedis.sadd("aaa","value+aaa4");
jedis.sadd("aaa","value+aaa5");
jedis.sadd("aaa","value+aaa6");
jedis.sadd("aaa", "value+aaa7");
System.out.println(jedis.smembers("aaa"));
jedis.srem("aaa","value+aaa5");
System.out.println("删除后"+jedis.smembers("aaa"));
Set<String> aaa = jedis.smembers("aaa");
Iterator<String> it1 = aaa.iterator();
while(it1.hasNext()){
String next = it1.next();
System.out.println(next);
}
System.out.println("listlistlistlistlistlistlistlistlistlistlistlistlistlistlistlist");
jedis.lpush("list","list1");
jedis.lpush("list","list2");
jedis.lpush("list","list3");
jedis.lpush("list","list4");
jedis.lpush("list","list5");
jedis.lpush("list","list6");
jedis.lpush("list","list7");
jedis.lpush("list","list8");
System.out.println(jedis.lrange("list",0,-1));
System.out.println("---------------------------");
//从队列左部添加元素
jedis.lpush("list","list9");
System.out.println(jedis.lrange("list",0,-1));
System.out.println("---------------------------");
//从队列右部添加
jedis.rpush("list", "lift0");
System.out.println(jedis.lrange("list",0,-1));
System.out.println("---------------------------");
//从左出队
jedis.lpop("list");
System.out.println(jedis.lrange("list",0,-1));
System.out.println("---------------------------");
//从右出队
jedis.rpop("list");
System.out.println(jedis.lrange("list",0,-1));
System.out.println("---------------------------插入");
jedis.linsert("list", BinaryClient.LIST_POSITION.BEFORE,"list4","nihao");
System.out.println(jedis.lrange("list",0,-1));
}
6.
Redis队列功能介绍
List
常用命令:
Blpop删除,并获得该列表中的第一元素,或阻塞,直到有一个可用
Brpop删除,并获得该列表中的最后一个元素,或阻塞,直到有一个可用
Brpoplpush
Lindex获取一个元素,通过其索引列表
Linsert在列表中的另一个元素之前或之后插入一个元素
Llen获得队列(List)的长度
Lpop从队列的左边出队一个元素
Lpush从队列的左边入队一个或多个元素
Lpushx当队列存在时,从队到左边入队一个元素
Lrange从列表中获取指定返回的元素
Lrem从列表中删除元素
Lset设置队列里面一个元素的值
Ltrim修剪到指定范围内的清单
Rpop从队列的右边出队一个元素
Rpoplpush删除列表中的最后一个元素,将其追加到另一个列表
Rpush从队列的右边入队一个元素
Rpushx从队列的右边入队一个元素,仅队列存在时有效
以上是关于redis 相关知识的主要内容,如果未能解决你的问题,请参考以下文章