noSql
什么是noSql:
NoSql,(not only sql),不仅仅是sql,泛指非关系型的数据库
NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题和高并发大规模数据的;
Nosql数据库的分类(特点)
key-value(键值对形式)型 nosql数据库 – 典型代码 redis
列式存储型, 文档型 ,图表型(了解)
redis
一、redis的认识
(1)高性能的,开源的nosql数据库,数据可以存储在磁盘上,也可以存储在内存
(2)redis主要以key-value的形式存储值,redis底层支持各种类型的数据存储结构,
包括list,map,set,String 等
二、特点
(1)数据可以存储在内存里,存储速度快
(2)支持的类型比较多,set、map、list、zset和hash等
(3)支持磁盘存储,可以完成持久化操作(aof,rdb)
(4)支持数据过期操作
(5)支持集群操作
(6)支持订阅和发布
Redis 和 Memcache区别(面试题)
不同点:
还有支持的类型不同:
mysql:表来存储 redis:string/list/map/set/… memcached:map
相同点:
memcache和redis 都是 key-value 非关系型数据
如何使用
下载下来直接解压后运行redis-server.exe
然后导包------>简单测试:
set key value
get key
// list操作
resource.lpush("students","{name:lxj}","{name,hhh}");
List<String> students = resource.lrange("students", 0, -1);
for (String student : students) {
System.out.println(student);
}
set操作
resource.sadd("student","{name,lxj}","{name,aaa}");
Set<String> student = resource.smembers("student");
System.out.println(student);
hash操作
resource.hset("user:1","name","kalaouke");
System.out.println(resource.hget("user:1", "name"));
HashMap hashMap = new HashMap();
hashMap.put("name","asdf");
hashMap.put("age","123");
hashMap.put("sex","true");
resource.hmset("user1",hashMap);
List<String> hmget = resource.hmget("user1", "name", "age", "sex");
System.out.println(hmget);
排序
resource.lpush("nums","1","2","4","3");
System.out.println(resource.sort("nums"));
SortingParams sortingParams = new SortingParams();
sortingParams.desc();
System.out.println(resource.sort("nums",sortingParams));
事物(只是弱事物)
Transaction multi = resource.multi();
multi.set("name","lxj");
multi.set("age","123");
multi.set("sex","true");
multi.incr("name");
multi.incr("sex");
List<Object> exec = multi.exec();
System.out.println(exec);
System.out.println(resource.get("sex"));
resource.close();