在7月中旬,我成功入职实习,通过进入公司,认识到了个人与企业巨大的差距,首先就是对于中间件的使用,ElasticSearch、Redis、Kafka等等,都是听过却从未使用过的,然而在任务下达之后,激励了学习动力,首先就是Redis。

网站

Redis官网:https://redis.io/

Redis的中文文档网站:http://www.redis.cn/

Redis是什么(转):https://www.cnblogs.com/powertoolsteam/p/redis.html

Redis的全部命令:http://www.redis.cn/commands.html

关于Redis

Redis(Remote Dictionary Server ):远程字典服务,C语言编写,属于NoSQL,key-value数据库,支持分布式(重点),常用作缓存。

安装:前往官网下载,注意对应系统,具体内容详见:https://www.runoob.com/redis/redis-install.html

Redis数据结构

Redis支持以下5种数据结构

1)字符串(strings)
2)字符串列表(lists)
3)字符串集合(sets)
4)有序字符串集合(sorted sets)
5)哈希(hashes)

不过在文档中查找命令时可以发现分的非常细致

所以当需要查找命令的时候不妨分类查找或是快速搜索

String

字符串类型是Redis用的最多的地方,是所有存储系统最基础的类型,因此入门就必须掌握它。

以下是String中的命令(参考视频:https://www.bilibili.com/video/BV1S54y1R7SB

1)get、set、EXISTS、APPEND、STRLEN

2)incr、decr、INCRBY、DECRBY

3)GETRANGE、SETRANGE

4)setex、setnx

5)mset(可以设置对象)、mget、getset

 mset

mget

getset

List

其他还有很多类型,就不一一列举了,详情参考文档--命令

Springboot配置Redis

Springboot作为目前Java开发主流框架,自然可以支持Redis。

首先在 pom.xml 中引入依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>${redis-version}</version>
</dependency>

然后就是配置文件,这里我使用的是 properties文件

# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=127.0.0.1
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=20
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=10
# 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=1000

配置就OK了,简单使用

创建jdisCluster

package com.zs.springboot.config.redis;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster; import java.util.HashSet;
import java.util.Set; @Configuration
public class RedisConfig {
private RedisProperties redisProperties; public RedisConfig(RedisProperties redisProperties) {
this.redisProperties = redisProperties;
} @Bean
public JedisCluster jedisCluster() {
Integer[] ports = redisProperties.getPorts();
String host = redisProperties.getIp();
Set<HostAndPort> hostAndPortSet = new HashSet<>();
for (Integer port : ports) {
hostAndPortSet.add(new HostAndPort(host, port));
}
return new JedisCluster(hostAndPortSet, redisProperties.getMaxActive(), redisProperties.getMaxWait());
}
}

增、删测试

@Service
public class RedisService { @Autowired
private JedisCluster jedisCluster; public Map<String, Object> set(String key, Object value) {
Map<String, Object> map = new HashMap<>();
String result = jedisCluster.set(key, JsonUtil.toJsonString(value));
System.out.println(result);return map;
} public String get(String key) {
String jsonString = jedisCluster.get(key);
if (jsonString==null || jsonString.equals("")) {
return null;
}
return jsonString;
} public Map<String, Object> del(String key) {
Map<String, Object> map = new HashMap<>();
Long del = jedisCluster.del(key);
if (del>0) {
map.put("code", 200);
} else {
map.put("code", 404);
}
return map;
} //设置失效时间
public Long expire(String key,Integer seconds) {
return jedisCluster.expire(key, seconds);
} }

Redis学习小结的更多相关文章

  1. NoSQL之Redis学习小结

    大数据时代要求: 三V:Volume海量.Velocity实时.Variety多样: 三高:高并发.高可扩.高性能 高并发操作不建议使用关联查询,而使用冗余数据,分布式系统支持不了太多的并发. 横向 ...

  2. 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  3. 分布式缓存技术redis学习(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  4. dubbo学习小结

    dubbo学习小结 参考: https://blog.csdn.net/paul_wei2008/article/details/19355681 https://blog.csdn.net/liwe ...

  5. Redis学习手册(目录)

    为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原因主要有三.其一,Redis不仅性能高效,而且完全免费.其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧.最后 ...

  6. redis 学习笔记(6)-cluster集群搭建

    上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...

  7. flex学习小结

    接触到flex一个多月了,今天做一个学习小结.如果有知识错误或者意见不同的地方.欢迎交流指教. 画外音:先说一下,我是怎么接触到flex布局的.对于正在学习的童鞋们,我建议大家没事可以逛逛网站,看看人 ...

  8. Python 学习小结

    python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...

  9. Redis——学习之路四(初识主从配置)

    首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...

随机推荐

  1. str数组

  2. .NET Core TLS 协议指定被我钻了空子~~~

    前言 此前,测试小伙伴通过工具扫描,平台TLS SSL协议支持TLS v1.1,这不安全,TLS SSL协议至少是v1.2以上才行,想到我们早已将其协议仅支持v1.3,那应该非我们平台问题.我依然自信 ...

  3. js fetch异步请求使用详解

    目录 认识异步 fetch(url) response.json() 结合async和await 异常处理 post请求 认识异步 首先我们得明白请求是一个异步的过程. 因为请求需要时间向服务器发送请 ...

  4. linux shell 函数返回值问题(超过255)

    最近再写一个shell测试的时候出现问题,函数返回值异常 用shell计算斐波那契数列数列,写了一个shell函数,然后调用的,验证的时候我只随便计算了几个数(10以内),确认结果是正确的就提交了,后 ...

  5. 最近公共祖先(lca)与树上叉分

    lca的定义不在过多解释, 代码如下: inline void bfs() { queue<int>q; deep[s]=1;q.push(s); while(!q.empty()) { ...

  6. windows 系统文件夹挂载到 Linux 系统,拷贝(发送)文件到 windows 系统,实现异地备份

    1.在windows 系统上配置好共享文件夹,用来接收Linux 系统的文件   注意:关闭windows 系统防火墙,或者添加进出站规则 2.在Linux 系统中,创建需要拷贝的文件目录 #mkdi ...

  7. makefile编译子目录

    make子目录常用方法 一般是 SUB_DIR = lib_src service .PHONY: subdirs $(SUB_DIR) subdirs: $(SUB_DIR) $(SUB_DIR): ...

  8. 配置Google支付相关参数(client_id, client_secret, refresh_token)

    1. 登陆Google开发者账号,点击左边API权限 Google控制台 创建新项目 转到 Google Play 管理中心的 API 权限页面. 接受<服务条款>. 点击创建新项目. 系 ...

  9. Python 全局变量和局部变量,global 和 nonlocal关键字

    全局变量和局部变量    全局变量:定义在函数外的变量    局部变量:定义在函数内部变量    获取变量值时候先获取当前作用域变量名称和变量值,如果没找到到上一层作用域招变量的值,在没有就报错,先获 ...

  10. Redis | 第一部分:数据结构与对象 上篇《Redis设计与实现》

    目录 前言 1. 简单动态字符串 1.1 SDS的定义 1.2 空间预分配与惰性空间释放 1.3 SDS的API 2. 链表 2.1 链表与节点的定义 2.2 链表的API 3. 字典 3.1 哈希表 ...