在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. 常见SOC启动流程分析

    本文以s5pv210这款SOC为例,分析了其启动流程 在s5pv210的SOC内部,存在着一个内部的ROM和一个内部的RAM 这个内部的ROM叫做 IROM,它是norflash的一种.其不同于板子上 ...

  2. 【行人惯性导航】关于行人导航中IMU位姿推导的知识点及相关代码

    IMU姿态惯性推导 最近从事行人惯性导航的研究,本人也是一个小白,其中看了很多文献,有很多个人思考很费时间的地方,撰写此随笔的目的不仅是给自己做一个笔记,也是给各位有需要的仁兄一点个人理解. 本文只关 ...

  3. 让Visual Studio x64 支持 __asm内联汇编

    目录 让Visual Studio x64 支持 __asm内联汇编 Intel Parallel Studio XE 2016安装 设置Interl C++ Compiler 使VS x64支持内联 ...

  4. 创建双向 CA x509 验证证书 kube-apiserver

    1. 设置 kube-apiserver 的 CA 证书相关的文件和启动参数 使用 OpenSSL 工具在 Master 服务器上创建 CA 证书和私钥相关的文件: # openssl genrsa ...

  5. Cannot load module file xxx.iml的两种解决方法

    一. 一种是点击左上角File,然后点击Invalidate Caches / Restart...,弹出对话框再点击Invalidate and Restart等待工程重新加载,问题就解决了. 二. ...

  6. USB3.0 转USB3.0

    前段时间因为项目需求需要将相机的USB3.0口转接出来,心想那还不想简单,结果第一次就碰壁了:先说一下usb3.0的引脚定义如图: 九个脚,2个地:注意USB3.0转3.0时数据线全交叉,DM-和DP ...

  7. Could not set property 'id' of 'class com.xxx.xxEntity'

    使用mybatisplus的save功能时,系统报错如下: Could not set property 'id' of 'class com.xxx.xxEntity' with value '13 ...

  8. 湖湘杯2020 writeup

    这个平台中间卡的离谱,卡完过后交了flag分还掉了 Web 题目名字不重要 也算是非预期吧,赛后y1ng师傅也说了因为要多端口环境必须这样配,预期解很难 NewWebsite 后台弱口令admin a ...

  9. Python基础(普通函数及参数)

    # def my_abs(x): # if not isinstance(x,(int,float)):#参数类型做检查,只允许整数和浮点数类型的参数.数据类型检查可以用内置函数isinstance( ...

  10. ABP Framework 5.0 RC.1 新特性和变更说明

    .Net 6.0 发布之后,ABP Framework 也在第一时间进行了升级,并在一个多星期后(2021-11-16)发布了 5.0 RC.1 ,新功能和重要变更基本已经确定. 5.0版本新特性 新 ...