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 相关知识的更多相关文章
- Redis相关知识整理
Redis相关知识整理 1. Redis和MySQL的区别?a).mysql是关系型数据库,而redis是NOSQL,非关系型数据库.mysql将数据持久化到硬盘,读取数据慢,而redis数据先存储在 ...
- 【面试】我是如何在面试别人Redis相关知识时“软怼”他的
事出有因 Redis是一个分布式NoSQL数据库,因其数据都存储在内存中,所以访问速度极快,因此几乎所有公司都拿它做缓存使用,所以Redis常被称为分布式缓存. 一次我的一个同事让我帮他看Redis相 ...
- Python——Redis相关知识
一.连接 Redis import redis 连接方式:redis提供了2个方法 1:StrictRedis:实现大部分官方的命令 2:Redis:是StrictRedis的子类,用于向后兼容旧版的 ...
- Redis相关知识
Redis 存储的五种 字符串类型:string 一个String类型的value最大可以存储512M String是最常用的一种数据类型,普通的key/value存储. 散列类型: hash 键值 ...
- redis相关缓存知识
Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorte ...
- redis入门知识汇总
1.什么是redis? Redis 是一个基于内存的高性能key-value数据库. 2.Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库 ...
- redis相关问题
什么是Redis?Redis 是一个使用 C 语言写成的,开源的 key-value 数据库..和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表 ...
- redis 相关知识点
(1)什么是redis? Redis 是一个基于内存的高性能key-value数据库. (有空再补充,有理解错误或不足欢迎指正) (2)Reids的特点 Redis本质上是一个Key-Value类型的 ...
- 【转】Redis相关
1. 什么是redis? Redis 是一个使用 C 语言写成的,开源的基于内存的高性能key-value数据库. Redis的值可以是由string(字符串).hash(哈希).list(列表) ...
随机推荐
- JavaScript中的indexOf
JavaScript中的indexOf 1.JavaScript中利用indexOf拼接字符串 <%@ page language="java" import="j ...
- freemarker写select组件报错总结(七)
1.错误描述 六月 26, 2014 11:26:27 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...
- Java中集合List,Map和Set的区别
Java中集合List,Map和Set的区别 1.List和Set的父接口是Collection,而Map不是 2.List中的元素是有序的,可以重复的 3.Map是Key-Value映射关系,且Ke ...
- vxWorks下dosFs文件系统的创建
.cdromFs:允许系统从按照ISO9660标准文件系统格式化的CD-ROM上读取设备: 通常文件系统驱动位于磁盘(块存取)设备驱动和IO系统之间,这一点在VxWorks中也不例外,但它在此基础上扩 ...
- 获取Filter的三种途径
一.通过CLSID [cpp] view plaincopyprint? IBaseFilter *pF = 0; HRESULT hr = CoCreateInstance(clsid, 0, CL ...
- freemarker中的if...elseif...else语句(七)
freemarker中的if...elseif...else语句 1.设计示例 <#if student.studentAge lt 12> ${student.studentName}不 ...
- C#图解教程 第十八章 枚举器和迭代器
枚举器和迭代器 枚举器和可枚举类型 foreach语句 IEnumerator接口 使用IEnumerable和IEnumerator的示例 泛型枚举接口迭代器 迭代器块使用迭代器来创建枚举器使用迭代 ...
- json 的循环输出
json不能用for-of循环,会报错 可以用for-in循环: var json = {'a':'apple','b':'banana','c':'orange','d':'pear'}; for( ...
- 【Luogu3807】【模板】卢卡斯定理(数论)
题目描述 给定\(n,m,p(1≤n,m,p≤10^5)\) 求 \(C_{n+m}^m mod p\) 保证\(P\)为\(prime\) \(C\)表示组合数. 一个测试点内包含多组数据. 输入输 ...
- centos7下搭建 MongoDB -01
距离上次写的一篇mongoDB搭建已经有一年多的时间了,刚好这次在公司搭建好在centos7下的mongodb搭建,简单的做一个记录吧 mongo 是一个基于分布式文件存储的数据库,数据主要存储在磁盘 ...