博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis的使用
阅读量:6380 次
发布时间:2019-06-23

本文共 3222 字,大约阅读时间需要 10 分钟。

hot3.png

1.Redis的概念

  • Redis运行过程,也就是读写过程都是基于内存实现的key/value存储,对比与memcached而言,会基于异步方式(快照)同步到文件系统,实现数据 的持久性存储,单一进程响应用户的所有的请求,具有主从架构 ;

  • Redis支持存储的value类型有很多,包括string(字符串)、list(链表)、set(集合)、zset(有序集合)和hash(哈希类型);

2.Windows系统下安装Redis

安装地址

  • 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 1incr 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://my.oschina.net/u/4072026/blog/3049018

你可能感兴趣的文章
80. Hibernate 5.0命名策略使用naming-strategy 不起作用【从零开始学Spring Boot】
查看>>
not found command:svn
查看>>
addEventListener和attachEvent小结
查看>>
IPHONE 开发 4 -- 深入理解iPhone OS/SDK与Objective-C 2.0
查看>>
在windows平台下获取精确经过时间
查看>>
SQL Server的还原(2)——STOPAT
查看>>
IOS(http几种请求)
查看>>
【转】域名解析相关概念
查看>>
hdu 1232:畅通工程(数据结构,树,并查集)
查看>>
在.NET中实现彩色光标/动画光标和自定义光标[转]
查看>>
freemarker错误七
查看>>
Cocos2dx 3.x创建Layer的步骤
查看>>
ASP.NET MVC 中将数据从View传递到控制器中的三种方法(表单数据绑定)
查看>>
SpringMVC+easyUI CRUD 添加数据C
查看>>
本地CS的导出xls代码段
查看>>
C++数组和指针
查看>>
恭贺自己itpub和csdn双双获得专家博客称号
查看>>
xml 转map dom4j
查看>>
Vitamio视频播放器
查看>>
Java编程的逻辑 (66) - 理解synchronized
查看>>