博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis介绍
阅读量:6497 次
发布时间:2019-06-24

本文共 2640 字,大约阅读时间需要 8 分钟。

Redis 介绍

  Redis是REmote DIctionary Server(远程字典服务器)的缩写,它以字典结构(key-value键值对结构)存储数据,并允许其他应用通过TCP协议读写字典中的内容。所以,redis是一个key-value存储系统,或者说是一个key-value数据库。

  Redis是用C语言开发的,并提供了几十种不同编程语言的客户端库,即我们用java语言也可以操作redis。这种字典形式的存储结构与常见的MySQL 等关系数据库的二维表形式的存储结构有很大的差异。关系型数据库存储的数据都是结构化数据Redis字典结构(k-v)的存储方式使得开发者可以将程序中的数据直接映射到Redis中,数据在Redis中的存储形式和其在程序中的存储方式非常相近。使用Redis的另一个优势是其对不同的数据类型提供了非常方便的操作方式,如使用集合类型存储文章标签,Redis可以对标签进行如交集、并集这样的集合运算操作。Redis存储数据的介质是内存,所以可以提供高效的读取。所以,redis数据库,我们也称之为非关系型数据库(Nosql)。而mysql,oracle等数据库称之为关系型数据库。这两种类型的数据库,没有优劣之分,看具体的应用场景。

Redis的内存存储和持久化Redis数据库中的所有数据都存储在内存中。由于内存的读写速度远快于硬盘,因此Redis在性能上对比其他基于硬盘存储的数据库有非常明显的优势,在一台普通的笔记本电脑上,edis可以在一秒内读写超过十万个键值。将数据存储在内存中也有问题,例如,程序退出后内存中的数据会丢失。不过 Redis提供了对持久化的支持,即将可以内存中的数据异步写入到硬盘中,同时不影响继续提供服务。

实现步骤:

1.下载Jedis依赖jar包
2.在maven工程里,建立测试类
3.调用Jedis的API

/*

* 测试连接和插值
* 注意:1.关闭虚拟机的防火墙或代开指定的端口,比如6379
*/
@Test
public void testConnect_Set(){
Jedis jedis=new Jedis("192.168.234.231", 6379);
jedis.set("name","tom");
jedis.close();
}

/*

* 测试利用Jedis实现Redis的分片,底层用的是一致性hash算法来实现的。
* 所以可以更好的满足数据的单调性和平衡性
*
*/
@Test
public void testShard(){
JedisPoolConfig config=new JedisPoolConfig();
List<JedisShardInfo> serverList=new ArrayList<>();
serverList.add(new JedisShardInfo("192.168.234.231",6379));
serverList.add(new JedisShardInfo("192.168.234.231",6380));
ShardedJedisPool pool=new ShardedJedisPool(config, serverList);
ShardedJedis jedis=pool.getResource();
for(int i=0;i<1000;i++){
jedis.set(i+"",i+"");
}
//用完后将jedis 连接还到池子
pool.returnResource(jedis);

}

}

 

1 /** 2  * 测试利用Jedis操作redis服务 3  * @author 4  * 5  */ 6 public class redis{ 7     /* 8      * 测试连接和插值 9      * 注意:1.关闭虚拟机的防火墙或代开指定的端口,比如637910      */11     @Test12     public void testConnect_Set(){13         Jedis jedis=new Jedis("192.168.234.231", 6379);14         jedis.set("name","tom"); 15         16         jedis.close();17     }18     19     /*20      * 测试利用Jedis实现Redis的分片,底层用的是一致性hash算法来实现的。21      * 所以可以更好的满足数据的单调性和平衡性22      * 23      */24     @Test25     public void testShard(){26         JedisPoolConfig config=new JedisPoolConfig();27         28         List
serverList=new ArrayList<>();29 30 serverList.add(new JedisShardInfo("192.168.234.231",6379));31 serverList.add(new JedisShardInfo("192.168.234.231",6380));32 33 ShardedJedisPool pool=new ShardedJedisPool(config, serverList);34 35 ShardedJedis jedis=pool.getResource();36 37 for(int i=0;i<1000;i++){38 jedis.set(i+"",i+"");39 }40 //用完后将jedis 连接还到池子41 pool.returnResource(jedis);42 43 }44 45 }

 

转载于:https://www.cnblogs.com/springcloud/p/7749511.html

你可能感兴趣的文章
HTTP头部信息解释分析(详细整理)
查看>>
【面试】重建二叉树
查看>>
Atitit.提升 升级类库框架后的api代码兼容性设计指南
查看>>
在 Linux 中查看时区
查看>>
代码解说Android Scroller、VelocityTracker
查看>>
【跟我一起学Unity3D】做一个2D的90坦克大战之AI系统
查看>>
unity3d教程运行物理机制
查看>>
shiro整合oauth
查看>>
Hibernate获取数据java.lang.StackOverflowError
查看>>
(转)如何修改maven的默认jdk版本
查看>>
Django模板过滤器详解
查看>>
流感下的北京中年 引发的消费型保险相关干货资料收集整理
查看>>
SnackbarUtilDemo【Snackbar的封装类】
查看>>
IOS上传图片的方法
查看>>
InnoDB和MyISAM区别
查看>>
8个免费实用的C++GUI库
查看>>
wifidog接口文档(转)
查看>>
mapreduce作业reduce被大量kill掉
查看>>
让资源管理器不显示最近常用文件夹
查看>>
极速发展的饿了么订单系统架构演进
查看>>