安装Redis

  1. 下载:官网:https://redis.io/download/,选择稳定版下载。

  2. 上传至linux

  3. 解压Redis:tar -zxvf redis-6.2.7.tar.gz,得到:

  4. 安装gcc编译环境,如果已经安装过了,则跳过:yum install gcc-c++

  5. 进入到redis-6.2.7目录,进行安装:make && make install,执行完毕后安装成功

  6. .配置redis,在utils下,拷贝 redis_init_script/etc/init.d 目录,目的要把redis作为开机自启动

  7. 创建 /usr/local/redis,用于存放配置文件

  8. 拷贝redis配置文件,拷贝到/usr/local/redis

  9. 修改redis.conf这个核心配置文件

    • 修改 daemonize no->daemonize yes,目的是为了让redis启动在linux后台运行

    • 修改redis的工作目录,建议修改为/usr/local/redis/working,名称随意

    • 修改如下内容,绑定IP改为0.0.0.0,代表可以让远程连接,不受ip限制

    • 最关键的是密码,默认是没有的,一定要设置

  10. 修改 redis_init_script 文件中的redis核心配置文件为如下∶并修改redis的核心配置文件名称为:6379.conf

  11. 为redis启动脚本添加执行权限,随后运行启动redis;

  12. 检查redis进程,至此redis安装并且启动成功

  13. 设置redis开机自启动,修改 redis_init_script,添加如下内容

#chkconfig:22345 10 90
#description: Start and Stop redis

随后执行:chkconfig redis_init_script on

重启服务器(虚拟机)后,再看进程。

SpringBoot整合Redis

  1. 引入Redis依赖
<!--引入 redis 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
  1. 配置redis
spring:
redis:
database: 1
host: 192.168.32.10
port: 6379
password: reminis
  1. controller测试
@Autowired
private RedisTemplate redisTemplate; @GetMapping("/test")
public vid testRedis(String key, String value) {
redisTemplate.opsForValue().set(key, value);
(String)redisTemplate.opsForValue().get(key);
redisTemplate.delete(key);
}

Redis的命令客户端

  • redis-cli -a password shutdown:关闭redis
  • ./redis_init_script stop:关闭reids
  • redis-cli:进入redis客户端
  • auth password:输入密码
  • set key value:设置缓存
  • get key:获得缓存
  • del key:删除缓存
  • redis-cli -a password ping:查看是否存活

Redis得数据类型

string字符串

  string:最简单的字符串类型键值对缓存,也是最基本的

  1. key相关

    • keys*:查看所有的key(不建议在生产环境中使用,有性能影响)
    • type key:查看key的类型
  2. string类型
    • get/set/del:查询/设置/删除
    • set key vaue:设置已存在key,会覆盖
    • setnx key value:设置已存在的key,不会覆盖
    • set key value ex time:设置带过期时间的数据
    • expire key:设置过期时间
    • ttl:查看过期时间,-1永不过期,-2已过期
    • append key:合并字符串长度
    • strlen key:字符串长度
    • incr key:累加1
    • decr key:累减1
    • incrby key num:累加给定数值
    • decrby key num:累减给定数值
    • getrange key start end:截取数据,end=-1代表到最后
    • setrange key start newdata:从start位置开始替换数据
    • mset:批量设值
    • mget: 批量取值
    • msetnx:批量设值,如果存在则不设值
  3. 其它
    • select index:切换数据库,总共默认16个
    • flushdb:删除当前db下边的所有数据
    • flushall:删除所有db中的数据

hash

  hash:类似map,存储结构化数据,比如存储一个对象(不能嵌套对象)

使用

  • hset key property value。如 hset user name reminis(创建一个user对象,这个对象中包含user属性,name的值为reminis),hget user name:获得用户对象中name的值

  • hmset:设置对象中的多个键值对。如 hmset user age 18 gender man phone 19209807669,hmsetnx:设置对象中的多个键值对,存在则不添加

  • hmget:获得对象中的多个属性。如 hmget user age gender phone

  • hgetall user:获得整个对象的内容

  • hincrby user age 2:累加属性

  • hincrbyfloat user age 2.2: 累加属性

  • hlen user:查看user对象有多少个属性

  • hexists user age:判断属性是否存在

  • hkeys user:获得对象的所有属性

  • hvals user:获得所有值

  • hdel user name:删除对象的某个属性

list

list:列表,[a,b,c,d,e,...]

使用

  • lpush userList 1 2 3 4 5:构建一个list,从左边开始存入数据
  • rpush userList 1 2 3 4 5:构建一个List,从右边开始存入数据
  • lrange userList start end:获得数据
  • lpop userList:从左侧开始拿出一个数据
  • rpop userList:从右侧开始拿出一个数据
  • llen userList:list的长度
  • lindex userList index:获取list下标的值
  • lset userList index value:把list的某个下标的值替换
  • linsert userList before/after value:插入一个新的值
  • lrem userList num value:删除几个相同的数据
  • ltrim userList start end:截取值,替换原来的list

set

set:相当于去重的list

zset

sorted set:排序的set,可以去重可以排序,比如可以根据用户积分做排名,积分作为set的一个数值,根据数值可以做排序。zset中的每一个member都带有一个分数

使用

  • zadd zset 10 value1 20 value2 30 value3:设置member和对应的分数
  • zrange zset 0 -1:查看所有zset中的内容
  • zrange zset 0 -1 withscores:带有分数
  • zrank zset value:获得对应的下标
  • zscore zset value:获得对应的分数
  • zcard zset:统计个数
  • zcount zset 分数1 分数2:统计个数
  • zrangebyscore zset 分数1 分数2:查询分数之间的member(包含分数1和分数2)
  • zrangebyscore zset (分数1 (分数2:查询分数之间的member(不包含分数1和分数2)
  • zrangebyscore zset 分数1 分数2 limit start end:查询分数之间的member(包含分数1和分数2),获得的结果集再次根据下标区间做查询
  • zrem zset value:删除member

Redis入门实践的更多相关文章

  1. redis入门到精通系列(二):redis操作的两个实践案例

    在前面一篇博客中我们已经学完了redis的五种数据类型操作,回顾一下,五种操作类型分别为:字符串类型(string).列表类型(list).散列类型(hash).集合类型(set).有序集合类型(so ...

  2. 分布式学习系列【dubbo入门实践】

    分布式学习系列[dubbo入门实践] dubbo架构 组成部分:provider,consumer,registry,monitor: provider,consumer注册,订阅类似于消息队列的注册 ...

  3. Redis入门指南

    随着互联网业务对性能需求日益强烈,作为Key/Value存储的Redis具有数据类型丰富和性能表现优异的特点.如果能够熟练地驾驭它,不管是把它用做缓存还是存储,对很多大型应用都很多帮助.新浪作为世界上 ...

  4. MongoDB入门实践

    MongoDB入门实践 简单介绍MongoDB,包括MongoDB的使用场景.和MySQL的对比.安装部署.Java客户端访问及总结 MongoDB? 我们遵循需求驱动技术的原则,通过一个场景来引入M ...

  5. Spring Boot WebFlux 快速入门实践

    02:WebFlux 快速入门实践 Spring Boot 2.0 spring.io 官网有句醒目的话是: BUILD ANYTHING WITH SPRING BOOT Spring Boot ( ...

  6. redis入门指南(二)—— 数据操作相关命令

    写在前面 以下绝大部分内容取材于<redis入门指南>,部分结合个人知识,实践后得出. 只记录重要,明确,属于新知的相关内容,杜绝冗余和重复. 字符串 1.字符串类型是redis中最常见的 ...

  7. redis入门指南(三)—— 事务、过期时间、SORT命令、消息通知与管道

    写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 事务 1.redis中的事务由一组命令的集合组成,要么都执行,要么都不执行,同时redis的事务 ...

  8. redis入门指南(四)—— redis如何节省空间

    写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 节省空间 1.redis对于它所支持的五种数据类型,每种都提供了两种及以上的编码方式去存储(具体 ...

  9. redis入门指南(五)—— 复制与哨兵

    写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 一.复制 1.在复制中,数据库分为两类,一类主数据库,一类从数据库,主库用来读写,从库用来读,主 ...

  10. redis入门指南(六)—— 集群

    写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 配置集群 1.配置集群,集群解决了单点故障以及单台机器内存上限的问题,使用集群时,只需要将配置文 ...

随机推荐

  1. Go 并发编程 - runtime 协程调度(三)

    Go Runtime Go runtime 可以形象的理解为 Go 程序运行时的环境,类似于 JVM.不同于 JVM 的是,Go 的 runtime 与业务程序直接打包在一块,是一个可执行文件,直接运 ...

  2. (洛谷P4213)杜教筛

    https://www.cnblogs.com/Mychael/p/8744633.html #pragma GCC optimize(3, "Ofast", "inli ...

  3. 构建iOS交叉编译环境

    要进行高级的iOS编程,我们需要很多工具链来帮我们完成这一目的 构建iOS交叉编译环境: 1.新建一个iphone交叉编译虚拟机 2. 为我们的虚拟机添加第二个网卡,设为host-only来达到能与宿 ...

  4. 提取protobuf定义文件结构

    先安装protobuf的js支持包 npm install protobufjs test.proto文件如下所示 syntax = "proto3"; package Test; ...

  5. 【krpano】 ASP说一说插件

    简述 这是一个Asp版krpano说一说案例,运用asp+jquery读写存储入xml文件数据库,结合krpano代码实现的功能:现将案例上传网站供大家学习研究,希望对大家有所帮助. 功能 用户可在网 ...

  6. Linux服务器使用Redis作为数据缓存,并用log4j2进行日志记录

    前言 个人网站使用Vue作为前端,SpringBoot作为后端,MySQL作为数据库,但前端每次请求都会从MySQL数据库中读取数据,而MySQL数据库的数据是存储于服务器磁盘中,所以响应速度有一定影 ...

  7. 「hackerrank - 101hack43」K-Inversion Permutations

    link. 原问题即:请你给出不同的序列 \(\{a_n\}\) 的数量,满足 \(0\leqslant a_i<i\),且 \(\sum a_i=k\). 那么写出 \({a_n}\) 的 o ...

  8. 【Python爬虫】使用代理ip进行网站爬取

    使用代理IP进行网站爬取可以有效地隐藏你的真实IP地址,让网站难以追踪你的访问行为.本文将介绍Python如何使用代理IP进行网站爬取的实现,包括代理IP的获取.代理IP的验证.以及如何把代理IP应用 ...

  9. 【Python进阶-PyQt5】00搭建PyQt5环境

    1.创建独立开发虚拟环境 1.1虚拟环境简介 我们编写的程序,有时用到的Python库是不一样的,比如说开发桌面应用程序我们主要用到PyQt5相关的Python库.开发Web应用程序我们主要用到Dja ...

  10. ArcGIS地图投影与坐标系转换的方法

      本文介绍在ArcMap软件中,对矢量图层或栅格图层进行投影(即将地理坐标系转为投影坐标系)的原理与操作方法.   首先,地理坐标系与投影坐标系最简单的区别就是,地理坐标系用经度.纬度作为空间衡量指 ...