Redis入门实践
安装Redis
下载:官网:https://redis.io/download/,选择稳定版下载。
上传至linux

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

安装gcc编译环境,如果已经安装过了,则跳过:
yum install gcc-c++进入到
redis-6.2.7目录,进行安装:make && make install,执行完毕后安装成功.配置redis,在utils下,拷贝
redis_init_script到/etc/init.d目录,目的要把redis作为开机自启动

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

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

修改
redis.conf这个核心配置文件修改 daemonize no->daemonize yes,目的是为了让redis启动在linux后台运行

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

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

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

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

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

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

设置redis开机自启动,修改
redis_init_script,添加如下内容
#chkconfig:22345 10 90
#description: Start and Stop redis
随后执行:chkconfig redis_init_script on
重启服务器(虚拟机)后,再看进程。
SpringBoot整合Redis
- 引入Redis依赖
<!--引入 redis 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- 配置redis
spring:
redis:
database: 1
host: 192.168.32.10
port: 6379
password: reminis
- 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:关闭reidsredis-cli:进入redis客户端auth password:输入密码set key value:设置缓存get key:获得缓存del key:删除缓存redis-cli -a password ping:查看是否存活
Redis得数据类型
string字符串
string:最简单的字符串类型键值对缓存,也是最基本的
- key相关
keys*:查看所有的key(不建议在生产环境中使用,有性能影响)type key:查看key的类型
- 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:累加1decr key:累减1incrby key num:累加给定数值decrby key num:累减给定数值getrange key start end:截取数据,end=-1代表到最后setrange key start newdata:从start位置开始替换数据mset:批量设值mget: 批量取值msetnx:批量设值,如果存在则不设值
- 其它
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 phonehgetall 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入门实践的更多相关文章
- redis入门到精通系列(二):redis操作的两个实践案例
在前面一篇博客中我们已经学完了redis的五种数据类型操作,回顾一下,五种操作类型分别为:字符串类型(string).列表类型(list).散列类型(hash).集合类型(set).有序集合类型(so ...
- 分布式学习系列【dubbo入门实践】
分布式学习系列[dubbo入门实践] dubbo架构 组成部分:provider,consumer,registry,monitor: provider,consumer注册,订阅类似于消息队列的注册 ...
- Redis入门指南
随着互联网业务对性能需求日益强烈,作为Key/Value存储的Redis具有数据类型丰富和性能表现优异的特点.如果能够熟练地驾驭它,不管是把它用做缓存还是存储,对很多大型应用都很多帮助.新浪作为世界上 ...
- MongoDB入门实践
MongoDB入门实践 简单介绍MongoDB,包括MongoDB的使用场景.和MySQL的对比.安装部署.Java客户端访问及总结 MongoDB? 我们遵循需求驱动技术的原则,通过一个场景来引入M ...
- Spring Boot WebFlux 快速入门实践
02:WebFlux 快速入门实践 Spring Boot 2.0 spring.io 官网有句醒目的话是: BUILD ANYTHING WITH SPRING BOOT Spring Boot ( ...
- redis入门指南(二)—— 数据操作相关命令
写在前面 以下绝大部分内容取材于<redis入门指南>,部分结合个人知识,实践后得出. 只记录重要,明确,属于新知的相关内容,杜绝冗余和重复. 字符串 1.字符串类型是redis中最常见的 ...
- redis入门指南(三)—— 事务、过期时间、SORT命令、消息通知与管道
写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 事务 1.redis中的事务由一组命令的集合组成,要么都执行,要么都不执行,同时redis的事务 ...
- redis入门指南(四)—— redis如何节省空间
写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 节省空间 1.redis对于它所支持的五种数据类型,每种都提供了两种及以上的编码方式去存储(具体 ...
- redis入门指南(五)—— 复制与哨兵
写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 一.复制 1.在复制中,数据库分为两类,一类主数据库,一类从数据库,主库用来读写,从库用来读,主 ...
- redis入门指南(六)—— 集群
写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 配置集群 1.配置集群,集群解决了单点故障以及单台机器内存上限的问题,使用集群时,只需要将配置文 ...
随机推荐
- 浅谈API安全的应用
理论基础 API它的全称是Application Programming Interface,也叫做应用程序接口,它定义了软件之间的数据交互方式.功能类型.随着互联网的普及和发展,API 从早期的 ...
- 弹性数据库连接池探活策略调研(一)——HikariCP
调研背景: 数据库连接建立是比较昂贵的操作(至少对于 OLTP),不仅要建立 TCP 连接外还需要进行连接鉴权操作,所以客户端通常会把数据库连接保存到连接池中进行复用.连接池维护到弹性数据库(JED) ...
- 在线PNG, JPG, BMP 转ICO图标,适用WINDOWS XP, VISTA, 7, 8, 10
在线PNG, JPG, BMP 转ICO图标网址: http://static.krpano.tech/image2ico 该网站可以把PNG, JPG和BMP图片转换成包含多个层级的ICO图标, 可 ...
- 15.3K Star,超好用的开源协作式数字白板:tldraw
大家好,我是TJ 今天给大家推荐一个开源协作式数字白板:tldraw. tldraw的编辑器.用户界面和其他底层库都是开源的,你可以在它的开源仓库中找到它们.它们也在NPM上分发,提供开发者使用.您可 ...
- xmind文件数据解析重构成mindmap可识别数据
[需求背景] 测试平台开发中,需要引入前端mindmap模块,进行在线xmind实时解析并前端展示 [卡点难点] 选取什么库进行xmind解析 如何转换成mindmap可以识别的数据 [xmind解析 ...
- Redis 不同插入方法的性能对比
1. 测试目的 对比 Redis 不同插入方法(插入同时能设置过期时间)的性能区别. 2. 测试数据 key:SMGP_ value:JSON数据 { "spName":" ...
- Go 复合类型之切片类型介绍
Go 复合类型之切片类型 目录 Go 复合类型之切片类型 一.引入 二.切片(Slice)概述 2.1 基本介绍 2.2 特点 2.3 切片与数组的区别 三. 切片声明与初始化 3.1 方式一:使用切 ...
- Oracle 11g数据库详解(2017-01-23更新)
Oracle 11g数据库详解 整理者:赤勇玄心行天道 QQ:280604597 Email:280604597@qq.com 大家有什么不明白的地方,或者想要详细了解的地方可以联系我,我会认真回复的 ...
- 【Vue3响应式入门#01】Reactivity
专栏分享:vue2源码专栏,vue3源码专栏,vue router源码专栏,玩具项目专栏,硬核推荐 欢迎各位ITer关注点赞收藏 背景 以下是柏成根据Vue3官方课程整理的响应式书面文档 - 第一节, ...
- 2D物理引擎 Box2D for javascript Games 第五章 碰撞处理
2D物理引擎 Box2D for javascript Games 第五章 碰撞处理 碰撞处理 考虑到 Box2D 世界和在世界中移动的刚体之间迟早会发生碰撞. 而物理游戏的大多数功能则依赖于碰撞.在 ...