1、概述

Redis 是现在很流行的一个 NoSql 数据库,每秒读取可以达到10万次,能够将数据持久化,支持多种数据结构,容灾性强,易扩展,常用于项目的缓存中间件。

今天我们就来聊聊关于Redis的那些事儿:

1)Redis在CentOS7中的安装

2)Redis的基本使用

3)Redis与SpringBoot的整合

2、Redis在CentOS7中的安装

2.1 下载Redis

可登录Redis官网(https://redis.io/),下载最新版本的Redis安装包

 2.2 解压Redis安装包

1)将安装包 redis-6.2.5.tar.gz 拷贝到 CentOS7 ,例如 /home 目录下

2)解压

# tar -zxvf redis-6.2.5.tar.gz

2.3 安装依赖包

# yum -y install gcc-c++

2.4 编译并安装Redis

进入解压后的redis安装包目录,执行编译并安装

# cd redis-6.2.5

# make && make install (过程需要几分钟)

2.5 配置Redis配置文件

1)创建 /usr/local/redis 目录,用于存放配置文件

# cd /usr/local

# mkdir redis

2)创建 /usr/local/redis/db 目录,用于存放数据文件

# cd /usr/local/redis

# mkdir db

3)进入 /home/redis-6.2.5/ 目录,拷贝redis配置文件到 /usr/local/redis 目录

# cd  /home/redis-6.2.5/

# cp redis.conf /usr/local/redis/

4)修改redis配置文件

# cd /usr/local/redis/

# vi redis.conf

修改以下几个地方:

2.6 配置Redis启动脚本

1)进入 /home/redis-6.2.5/utils 目录

2)拷贝 启动脚本(redis_init_script) 文件到 /etc/init.d/ 目录下

# cp redis_init_script /etc/init.d/

3)进入 /etc/init.d/ 目录

# cd /etc/init.d/

4)修改启动脚本

# vi redis_init_script

2.7 启动redis

1)启动、停止redis命令

# /etc/init.d/redis_init_script start    // 启动命令

# /etc/init.d/redis_init_script stop    // 停止命令

2)设置开机自启redis

# chkconfig redis_init_script on

3)启动redis客户端

# redis-cli

> AUTH zhuifengren   // 之前在配置文件中设置的密码

3、redis的基本使用

3.1 基本命令

1)获得key

keys *

keys a*

keys *b

2)获得key的类型

type name

3)获得key的剩余时间,-1代表永久

ttl name

4)设置key的过期时间,单位秒

expire name 30

5)切换数据库,默认16个库,下标是 0 到 15,默认使用 0

select 2

6)清空当前库的所有数据(慎用)

flushdb

7) 清空所有库的所有数据(慎用)

flushall

8)删除key

del name

del list2

3.2 string类型

1)设置值

set name zhangsan

set age 30

2)得到值

get name

get age

3)key不存在才设置值

setnx name lisi

4)设置值的同时设置过期时间

set name zhangsan ex 15

5)追加字符串

append name 666

6)查看字符串长度

strlen name

7)自增1,仅限数字

incr age

8)自减1,仅限数字

decr age

9)指定自增的数量,仅限数字

incrby age 11

10)指定自减数量,仅限数字

decrby age 11

11)截取字符串,1和5代表字符串的下标,-1代表取字符串的长度

getrange name 1 5

getrange name 1 -1

12)从某一位置开始替换字符串

setrange name 9 ccccc

13)设置多个键值

mset name1 zhangsan name2 lisi

14)得到多个键值

mget name1 name2

3.3 hash类型

1)设置hash值

hset user1 name zhangsan age 30

2)获得hash值的某个属性

hget user1 name

3)获得hash值的多个属性

hmget user1 name age

4)获得hash值的所有属性

hgetall user1

5)查看有多少个属性

hlen user1

6)列出所有key

hkeys user1

7)列出所有值

hvals user1

8)数值属性增长

hincrby user1 age 10

9)是否存在某属性

hexists user1 age

10)删除某个属性

hdel user1 age

3.4 list类型

1)从左侧存入数据

lpush list1 1 2 3 4 5

2)从右侧存入数据

rpush list2 1 2 3 4 5

3)查看数组值

lrange list1 0 -1

4)从左边拿出N个值,不设定拿出个数,默认是1

lpop list1 2

5)从右边拿出N个值,不设定拿出个数,默认是1

rpop list1 2

6)得到数组的长度

llen list1

7)获取数组下标的值,值不删

lindex list2 2

8)替换某下标的值

lset list2 2 10

9)在某值前插入一个新值

linsert list2 before 10 9

10)在某值后插入一个新值

linsert list2 after 10 11

11)删除N个相同的数据

lrem list2 2 10

12)截取元素,替换原来的数组

ltrim list2 2 3

3.5 set类型

1)添加set,会自动去重

sadd set1 a b c d e a b c

2)获取set中的所有元素

smembers set1

3)查看set中有多少个元素

scard set1

4)判断set中是否存在该元素

sismember set1 e

5)删除指定元素

srem set1 a

6)出栈N个元素

spop set1

7)随机展示N个元素,不从set中删除

srandmember set1

8)把一个set中的元素移动到另一个set中

smove set1 set2 e

9)计算差集

sdiff set1 set2

10)计算交集

sinter set1 set2

11)计算并集

sunion set1 set2

3.6 zset类型

1)添加元素 ,会自动去重

zadd zset1 10 zhangsan 20 lisi 30 wangwu

2)获取元素,会根据分数排序

zrange zset1 0 -1

3)获取元素,显示分数

zrange zset1 0 -1 withscores

4)获取元素的下标

zrank zset1 lisi

5)获得某一元素的分数

zscore zset1 lisi

6)得到zset中元素的个数

zcard zset1

7)统计分数在区间内的元素个数

zcount zset1 30 40

8)显示分数在区间内的元素,包括分数是 30 和 40 的元素

zrangebyscore zset1 30 40

9)显示分数在区间内的元素,数字前面加上左括号代表不包括分数是40的元素

zrangebyscore zset1 30 (40

10)显示分数在区间内的元素,带分页

zrangebyscore zset1 30 40 limit 1 2

11)删除zset的元素

zrem zset1 lisi

4、Redis与SpringBoot的整合

1)引入依赖

        <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2)yml文件中配置redis

spring:
redis:
database: 1
host: 192.168.1.144
port: 6379
password: zhuifengren

3)测试redis

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class TestRedis { @Autowired
private RedisTemplate<String, String> redisTemplate; @Test
public void testSetString() {
redisTemplate.opsForValue().set("name", "zhangsan");
} }

5、综述

今天讲了关于Redis的一些知识。

希望大家多多评论交流,共同成长。

Redis的安装、基本使用以及与SpringBoot的整合的更多相关文章

  1. Redis哨兵机制的实现及与SpringBoot的整合

    1. 概述 前面我们聊过Redis的读写分离机制,这个机制有个致命的弱点,就是主节点(Master)是个单点,如果主节点宕掉,整个Redis的写操作就无法进行服务了. 为了解决这个问题,就需要依靠&q ...

  2. Redis集群的搭建及与SpringBoot的整合

    1.概述 之前聊了Redis的哨兵模式,哨兵模式解决了读的并发问题,也解决了Master节点单点的问题. 但随着系统越来越庞大,缓存的数据越来越多,服务器的内存容量又成了问题,需要水平扩容,此时哨兵模 ...

  3. Windows环境下springboot集成redis的安装与使用

    一,redis安装 首先我们需要下载Windows版本的redis压缩包地址如下: https://github.com/MicrosoftArchive/redis/releases 连接打开后如下 ...

  4. springBoot 官方整合的redis 使用教程:(StringRedisTemplate 方式存储 Object类型value)

    前言:最近新项目准备用 redis 简单的缓存 一些查询信息,以便第二次查询效率高一点. 项目框架:springBoot.java.maven  说明:edis存储的数据类型,key一般都是Strin ...

  5. redis的安装配置

    主要讲下redis的安装配置,以及以服务的方式启动redis 1.下载最新版本的redis-3.0.7  到http://redis.io/download中下载最新版的redis-3.0.7 下载后 ...

  6. Linux下Redis的安装和部署

    一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...

  7. 基于C#的MongoDB数据库开发应用(4)--Redis的安装及使用

    在前面介绍了三篇关于MongoDB数据库的开发使用文章,严格来讲这个不能归类于MongoDB数据库开发,不过Redis又有着和MongoDB数据库非常密切的关系,它们两者很接近,Redis主要是内存中 ...

  8. Linux下Redis的安装与配置

    redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了 memcached的不足,它支持存储的value类型相对更多,包括stri ...

  9. [nosql之redis]yum安装redis

    1.首先对于这种nosql来说目前我用到的功能很少,所以感觉没有必要去优化他跟不需要去编译安装.今天来介绍下一个yum安装redis 步骤1:安装扩展yum库 [root@localhost ~]# ...

随机推荐

  1. Gateway网关匹配规则

    Gateway匹配规则 重要概念 路由 route 断言 predicate 过滤器 fliter 一.时间匹配 在 after 时间之后的所有请求转发到 URI中的地址 gateway: disco ...

  2. 大数据学习(03)——HDFS的高可用

    高可用架构图 先上一张搜索来的图. 如上图,HDFS的高可用其实就是NameNode的高可用. 上一篇里,SecondaryNameNode是NameNode单节点部署才会有的角色,它只帮助NameN ...

  3. Spring Cloud分区发布实践(3) 网关和负载均衡

    注意: 因为涉及到配置测试切换, 中间环节需按此文章操作体验, 代码仓库里面的只有最后一步的代码 准备好了微服务, 那我们就来看看网关+负载均衡如何一起工作 新建一个模块hello-gateway, ...

  4. Node.js躬行记(8)——通用接口

    一.GraphQL 最近服务端的同事分享了GraphQL,他分享的目的就是要把我们与他们的数据库隔离,这么做我们也求之不得. 我们组目前维护着一个后台管理系统,会直接读取数据库中的表,如果能隔离的话, ...

  5. 如何评价《Java 并发编程艺术》这本书?

    对于书评这件事情,我其实是不想写的,因为每个人都有自己的一个衡量标准,每个人眼中都有自己的哈姆雷特,是好是坏每个人都褒贬不一.如果对于书中的知识你都掌握了,你只是想把它作为一种知识串联的记忆体的话,那 ...

  6. 算法竞赛中的常用JAVA API :HashSet 和 TreeSet(转载)

    算法竞赛中的常用JAVA API :HashSet 和 TreeSet set set容器的特点是不包含重复元素,也就是说自动去重. HashSet HashSet基于哈希表实现,无序. add(E ...

  7. netty系列之:自定义编码和解码器要注意的问题

    目录 简介 自定义编码器和解码器的实现 ReplayingDecoder 总结 简介 在之前的系列文章中,我们提到了netty中的channel只接受ByteBuf类型的对象,如果不是ByteBuf对 ...

  8. kivy之Button常用属性实操练习

    kivy提供了Button按钮一系列属性来改变样式,下面列了常用的一些Button属性并用实操案例进行演练学习. 新建一个main.py,内容代码如下: from kivy.app import Ap ...

  9. Qt项目简易开发原理及常见问题解决

    一.资源下载地址 https://www.aliyundrive.com/s/jBU2wBS8poH 本项目路径:项目->免费->QtDev 注释:为了方便qt全功能开发,QtDev中包含 ...

  10. 云原生的弹性 AI 训练系列之二:PyTorch 1.9.0 弹性分布式训练的设计与实现

    背景 机器学习工作负载与传统的工作负载相比,一个比较显著的特点是对 GPU 的需求旺盛.在之前的文章中介绍过(https://mp.weixin.qq.com/s/Nasm-cXLtJObjLwLQH ...