1.Redis的概念

  • Redis运行过程,也就是读写过程都是基于内存实现的key/value存储,对比与memcached而言,会基于异步方式(快照)同步到文件系统,实现数据 的持久性存储,单一进程响应用户的所有的请求,具有主从架构 ;
  • Redis支持存储的value类型有很多,包括string(字符串)、list(链表)、set(集合)、zset(有序集合)和hash(哈希类型);

2.Windows系统下安装Redis

安装地址:https://github.com/MicrosoftArchive/redis/releases

redis连接

r = redis.Redis(host='127.0.0.1', port=6379)host是redis主机,需要redis服务端和客户端都启动 redis默认端口是6379;

3.Linux系统下安装Redis:

安装命令行yum install -y redis启动Redissystemctl start redis.service连接方式一redis-cli -h 192.168.23.10 -p 6379连接方式二redis-cli -h 192.168.23.10 -p 6379 -a 123456选择数据库由于在配置文件中默认定义使用16个database,因此每次登入Redis时,可以选择使用哪个数据库select 0:表示使用0号数据库select 1:表示使用1号数据库清空数据库flushdb :清空当前数据库flushall :清空所有的库

4.Redis中的命令和命令组

  • 命令组与命令的联系:一个命令组中包含多个命令,可以使用 help @命令组,查看某个命令组中有多少命令,以及这些命令如何使用,如
help @stringhelp @server
  • 查看特定命令的用法
help LLENhelp STRLEN;

5.Redis常用命令

set key value [EX seconds] [PX milliseconds] [NX|XX]
  • set robby ops:赋值; 、
  • get robby:取值;
  • EX:表示超时时长;
  • NX:如果一个键不存在则创建,存在不创建;
  • XX:如果一个键存在则创建,不存在不创建;
  • exists robby:判断一个键值是否存在, 如果存在返回整数类型1 ,否则返回0;
  • append robby "值":追加值;
  • 删除键;
del key [key.....]del robby
  • 设置一个整数值,让数值增加

set number 1

incr number (加1)

decr number (减1)

6.Redis中的5种数据类型

  • 字符串string:字符串类型是Redis中最为基础的数据存储类型,是一个由字节组成的序列,他在Redis中是二进制安全的,这便意味着该类型可以接 受任何格式的数据,如JPEG图像数据货Json对象描述信息等,是标准的key-value,一般来存字符串,整数和浮点数;
  • 列表list:Redis的列表允许用户从序列的两端推入或者弹出元素,列表由多个字符串值组成的有序可重复的序列,是链表结构,所以向列表两端添加 元素的时间复杂度为0(1),获取越接近两端的元素速度就越快;
  • 集合set:Redis的集合是无序不可重复的,和列表一样,在执行插入和删除和判断是否存在某元素时,效率是很高的,集合最大的优势在于可以进行 交集并集差集操作;
  • 有序集合sorted set:类似set,都是字符串的集合,都不允许重复的成员出现在一个set中,他们之间差别在于有序集合中每一个元素都会有一个 score与之关联,这个score可用于排序和排名;
  • 散列hash:Redis中的散列可以看成具有String key和String value的map容器,可以将多个key-value存储到一个key中,每一个Hash可以存储 4294967295个键值对;

7.Redis 事务

  • Redis 事务可以一次执行多个命令,多个操作要么一次性执行完毕,要么都不执行;
  • 一个事务从开始到执行会经历三个阶段:开始事务、命令入队、执行事务;
# 使用multi开启一个事务multi (开启一个事务日志)set name yhyset age 25set address changshaexec (提交,执行)

8.什么是Redis持久化

  • Redis支持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成的数据丢失问题,下次重启时利用之前持久化的文件即可实现数据恢 复;
  • RDB持久化方式会在一个特定的间隔保存那个时间点的一个数据快照;
  • AOF持久化方式则会记录每一个服务器收到的写操作;
  • Redis的持久化是可以禁用的,就是说你可以让数据的生命周期只存在于服务器的运行时间里;
  • 两种方式的持久化是可以同时存在的,但是当Redis重启时,AOF文件会被优先用于重建数据;

9.Redis的sentinel机制

### 启动systemctlsystemctl start redis-sentinel.service### 登入Sentinel,查看主从状态redis-cli -p 26379127.0.0.1:26379> info Sentinelsentinel_masters:1sentinel_tilt:0sentinel_running_scripts:0sentinel_scripts_queue_length:0sentinel_simulate_failure_flags:0master0:name=mymaster,status=ok,address=192.168.23.10:6379,slaves=2,sentinels=1### 停止Redis的master节点,登入sentinel查看节点信息systemctl stop redis.service[root@7 ~] # redis-cli -p 26379 127.0.0.1:26379> info sentinel sentinel_masters:1sentinel_tilt:0sentinel_running_scripts:0sentinel_scripts_queue_length:0sentinel_simulate_failure_flags:0master0:name=mymaster,status=ok,address=192.168.23.12:6379,slaves=2,sentinels=1127.0.0.1:26379> sentinel masters
  • 万一主节点打击,主从模型将会停止工作,为了解决这个问题,Redis提供了一个sentinel(哨兵),以此来实现主从切换的功能,一旦主节点宕机了 ,sentinel将会在从节点中挑一个作为主节点, 与zookeeper类似;
  • Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案;

它的主要功能有以下几点:

监控:Sentinel不断的检查master和slave是否正常的运行;

通知:如果发现某个redis节点运行出现问题,可以通过API通知系统管理员和其他的应用程序;

自动故障转移:能够进行自动切换,当一个master节点不可用时,能够选举出master的多个slave中的一个来作为新的master,其它的slave节点会 将它所追随的master的地址改为被提升为master的slave的新地址;

配置提供者:哨兵作为Redis客户端发现的权威来源:客户端连接到哨兵请求当前可靠的master的地址,如果发生故障,哨兵将报告新地址;

参考:https://www.9xkd.com/user/plan-view.html?id=1487078743

redis set不可重复_Redis的使用相关推荐

  1. 使用redis实现防止重复提交,成功解决方案 春风化作秋雨 2018-09-13 18:09:52 13787 收藏 6 分类专栏: 解决方案 版权 1、业务场景 业务开发中,常常涉及对前端操作

    使用redis实现防止重复提交,成功解决方案 1.业务场景 业务开发中,常常涉及对前端操作进行重复校验,避免重复提交造成数据重复操作.比如转账操作,因为网络卡顿,客户连续点击转账按钮,造成多次转成:又 ...

  2. redis key命名规范_Redis几个实战经验积累

    redis是一种nosql数据库,他的数据是保存在内存中,同时redis可以定时把内存数据同步到磁盘,即可以将数据持久化,并且他比memcached支持更多的数据结构(string,list列表[队列 ...

  3. 如何用 Redis 解决海量重复提交问题

    作者:慕容千语 来源:www.jianshu.com/p/c806003a8530 前言 在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生的影响 ...

  4. SpringBoot + Redis 解决海量重复提交问题

    作者 | 慕容千语 来源 | https://www.jianshu.com/p/c806003a8530 前言 在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念: ...

  5. redis 自减命令_Redis 实战 —— 04. Redis 数据结构常用命令简介

    字符串 P39 Redis 的字符串是一个有字节组成的序列,可以存储以下 3 种类型的值:字节串(byte string).整数.浮点数. 在需要的时候, Redis 会将整数转换成浮点数.整数的取值 ...

  6. redis 判断存在性_Redis如何保证接口的幂等性?

    原标题:Redis如何保证接口的幂等性? 在最近的一次业务升级中,遇到这样一个问题,我们设计了新的账户体系,需要在用户将应用升级之后将原来账户的数据手动的同步过来,就是需要用户自己去触发同步按钮进行同 ...

  7. SpringBoot+Redis防止接口重复提交

    前言 在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交.例如:用户鼠标点击过快而重复保存,从而创建了2笔一模一样的单据.针对类似情况,我们就可以全局地控制接口不允许重复提交. 实现思路 创 ...

  8. redis+aop防重复提交

    文章目录 1.防重复提交注解 2.redis分布式锁 3.防止重复提交Aop 之前有记录一篇用redis+拦截器防重复提交的内容: redis+拦截器防重复提交 1.防重复提交注解 @Target(E ...

  9. redis通过key模糊搜索_Redis—熬了一个通宵,终于把Key删完了!

    前言 由于有一条业务线不理想,高层决定下架业务.对于我们技术团队而言,其对应的所有服务器资源和其他相关资源都要释放.释放了8台应用服务器:1台es服务器:删除分布式定时任务中心相关的业务任务:备份并删 ...

最新文章

  1. 《实用机器学习》——1.4 本书概述
  2. logrotate 进行nginx日志分割
  3. 强人工智能是潘多拉魔盒吗
  4. 网络:窗口控制下的重发机制、流量控制
  5. Jmeter_初步认识随笔
  6. GitLab 在多分支中的一个push
  7. java month_java11教程--类Month用法
  8. 丽水数据可视化设计价格_B端产品设计数据可视化图表选择篇
  9. M产品研发日志(3)--看板,构建,模板,立会
  10. 计算机及应用学习顺序,自考计算机及应用专业经验谈
  11. idea配置maven后提示 commond not found
  12. Scrapped or attached views may not be recycled. isScrap:false isAttached:true异常
  13. 3D Tiles规格1.0 中文版
  14. 小猿圈python视频_小猿圈分享学习Python的最佳方式
  15. 输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
  16. python 截取视频片段
  17. MySQL创建用户,更改密码
  18. 车载端蓝牙AVRCP获取音乐信息btsnoop 分析
  19. FLiText: A Faster and Lighter Semi-Supervised Text Classification with Convolution Networks
  20. Python游戏之Pygame——太空飞机大战(三)

热门文章

  1. 罗永浩回应“鲨鱼皮技术遭质疑”;消息称马蜂窝开启裁员;Dart 2.7 发布 | 极客头条...
  2. 谁来结束 GUI 程序?| CSDN 博文精选
  3. 这个充电宝用起来好方便!
  4. 周鸿祎谈华为鸿蒙系统;百度回应“用搜索引擎填高考志愿”;腾讯首次全面公开开源路线图 | 极客头条...
  5. 啊哈,算法!为什么你如此“谜”人!
  6. 同样是程序员,为什么别人比你更优秀?
  7. Twitter 惊现密码漏洞,强制 3.3 亿用户修改密码!
  8. 腾讯网易音乐版权之争,拼的是什么?
  9. socket编程之回声服务器函数的陷阱
  10. 字节跳动面试真题:java程序设计基础教程