Redis简介:
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。更多详细资料自行百度百科。
Redis优缺点:
优点:
- 读写性能优异
- 支持数据持久化,支持AOF和RDB两种持久化方式
- 支持主从复制,主机会自动将数据同步到从机,也可进行读写分离
- 数据结构丰富,除了支持string类型还支持hash、set、sortedset、list等数据结构
缺点:
- Redis不具备自动容错和恢复功能,主机从机的宕机会导致前端部分读写请求是吧必须要等待机器重启或者手动切换前端IP才能恢复
- 主机宕机钱有部分数据未能及时同步至从机,切换IP后还会引入数据不一致的问题,降低系统的可用性
- Redis的主从复制采用圈梁复制,复制过程中主机会fork出一个子进程对内存做一份快照,将子进程的内存快照保存为文件发送给从机,这一过程需要确保主机有足够的空余内存。若快照文件较大,对集群的服务能力也会造成较大的影响,而且复制过程是在从机新加入集群或者从机和主机网络断开重连时,也就是网络波动都会造成主从的一次全量复制,这对实际的系统运营会造成很大的麻烦
- Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得复杂,为避免这一问题,运维人员在系统上线时必须保证有足够的空间,这对资源的浪费是一个不小的问题
下载安装:
这里就简单的说一下windows的安装,对于Linux下的安装百度很多。
Redis在官方并没有提供windows的版本,不过我们也可以去往GitHub上进行下载:Redis下载地址
如果有嫌下的慢的,我会在下方提供一个非GitHub的下载地址。
启动redis
找到解压的redis目录,打开cmd。输入redis-server.exe redis.wondows.conf,一般来说都会启动成功出现如下图:
然后重启一个cmd窗口输入:redis-cli.exe打开客户端
字符串类型:
set name test;存一个test到redis中
get name 取出test
哈希值:
hmset person age 18 ;存一个hash
hget person age ; 取一个hash 值
list集合
从以上代码我们可以看出,添加list的时候我们往集合中添加键值的时候,如果score存在即更新,不存在就添加
Redis发布订阅:
我们开启两个客户端:
在其中一个输入subscribe mytest message,作为接收端;另一个客户端输入publish mytest 你想发送的消息,作为发送端;这样发送端发送完后在接受者端就可以接受到。
还有许多的redis的命令,请关注以后的redis后续。
Jedis
不管我们怎么在cmd里使用命令,我们的最终目的还是希望能够在java中应用起来,这时候我们就会需要用到jedis
public static void main(String[] args) {
Jedis jedis = new Jedis("localhost");
System.out.println("server is running:"+jedis.ping());
if("PONG".equals(jedis.ping())){
jedis.set("name","test123456");
jedis.lpush("list","redis","mongodb","mysql");
List<String> list = jedis.lrange("list",0,10);
for (int i = 0; i < list.size(); i++) {
System.out.println("redis in string:"+list.get(i));
}
}
}
想要知道springboot怎么使用redis吗?请移步:springboot整合redis初级入门
redis解压急用版,以及可视化工具:传送门
欢迎关注我的公众号我们一起学习: