7.Redis键值对数据库
1.Redis的安装以及客户端连接
安装:apt-get install redis-server
卸载:apt-get purge --auto-remove redis-server
启动:redis安装之后默认会自动启动,但是也可以手动启动,service redis-server start
停止:service redis-server stop
客户端连接,一种方式是使用python等语言去连接,还可以使用redis-cli
2.Redis的字符串以及过期时间
3.Redis的列表操作
lpush list value:将value元素插入列表list的左边,如果list不存在则会创建一个名为list的列表,如果存在但不是列表类型则报错
rpush list value:将value元素插入列表list的右边,如果list不存在则会创建一个名为list的列表,如果存在但不是列表类型则报错
lrange list start stop:遍历列表list,start为起始范围,stop结束范围
lpop list:移除并返回list的头元素
rpop list:移除并返回list的尾元素
lrem list count value:删除list中count个值为value的元素。count>0,从前往后删除count个,count<0,从后往前删除|count|个,count=0,全部删除
lindex list index:返回list中索引为index的元素,但是不会删除
llen list:查看有多少个元素
4.Redis的集合操作
sadd set value1 value2:往集合set中添加元素,可以一次性添加多个。和列表一样,同样不需要创建。注意:集合的元素不能重复,尝试重复添加元素,不会报错,但是添加不进去
smembers set:查看set所有的元素
srem set val:移除集合中值为val的元素,这个和列表类似,列表是list所以lrem,集合是set,所以是srem,rem是remove的简写
scard set:查看集合中元素的个数
sinter set1 set2:查看两个集合的交集
sunion set1 set2:查看两个集合的并集
sdiff set1 set2:查看两个集合的补集
5.Redis的哈希操作
hset map key value:给map添加一个key-value键值对
hget map key:获取map中键为key的值
hdel map key:删除map中键为key的值
hgetall map:获取map中所有的键值对
hkeys map:获取map中所有的key
hvals map:获取map中所有的value
hexists map key:判断map中是否存在键为key的键值对
hlen map:查看map的键值对的个数
6.Redis的事务操作
事务操作:redis事务一次可以执行的多个命令,事务具有以下特征
·隔离操作:事务中的所有操作都会序列化、按顺序的进行,不会被其他命令打扰
·原子操作:事务中的所有命令要么全部执行,要么全不执行
监视一个或多个key
但是如果我在其他的窗口执行了该操作
取消监视:unwatch key,不加key则是全部取消
7.Redis的发布订阅操作
订阅某个频道:subscribe channel
给某个频道发送信息:publish channel message
首先要先有订阅,才能去发送信息,否则都没有人订阅,发给谁啊。既然有订阅有发布,那么我们就要有两个窗口
而且也可以同时订阅多个频道
7.RDB和AOF两种数据持久化的方式
redis的一大特点就是可以将数据持久化到磁盘上,我们之前的操作都是基于内存,一旦关闭程序,那么数据就丢失了。
而redis为我们提供了两种数据持久化的方式,一种是RDB,另一种是AOF
1.开启和关闭:
RDB:默认是开启的。如果把配置文件/etc/redis/redis.conf中所有的save给注释掉,就关闭了
AOF:在配置文件中appendonly yes为开启,appendonly no则关闭
看一下配置文件
2.同步机制:
RDB:可以指定某个时间内发生多少个命令进行同步。比如一分钟内发生了两次命令,就进行一次同步。
AOF:每秒同步或者每次发生命令后同步
3.存储内容:
RDB:存储的是redis里面具体的值
AOF:存储的是执行的写操作命令
4.存储文件的路径:
RDB:根据dir和dbfilename来指定具体路径和的文件名
AOF:根据dir和appendfilename来指定具体的路径和文件名
5.优缺点
优点:
RDB: 1.存储数据到文件中会进行压缩,文件体积比AOF小。2.因为存储的是redis具体的值,并且会经过压缩,因此在恢复的时候比AOF块。3.非常适用于备份
AOF:1.AOF的策略是每秒钟或者每次发生写操作的时候都会同步,因此即使服务器发生故障,也只会丢失一秒的数据。2.AOF存储的是redis命令并且直接追加到aof文件后面,因此每次备份的时候只要添加新的数据进去就可以了。3.如果AOF文件比较大,那么redis会进行重写,只保留最小的命令集合
缺点:
RDB:RDB在多少时间内发生了多少写操作的时候就会发出同步机制,因为采用压缩机制,,RDB在同步的时候都重新保存整个redis中的数据,因此一般会设置在最少5分钟内才保存一次数据。在这种情况下,一旦服务器故障,就会造成5分钟的数据丢失。2.在数据保存进RDB的时候,redis会fork出一个子进程用来同步,在数据流比较大的时候可能会非常耗时
AOF:1.AOF文件因为没有压缩,因此体积比RDB大。2.AOF是在每秒或者每次写操作都进行备份,因此如果并发量比较大,效率会有点低。3.因为存储的是命令,因此在灾难恢复的时候redis会重新运行AOF文件里的命令,速度不及RDB
8.redis设置连接密码
这样的话,当别人进入redis想乱搞的话,就不可能了。
也可以在登录的时候 指定密码,redis-cli -p 6379 -h 127.0.0.1 -a zgg
8.其他机器连接本机redis
默认只能本机连接,如果想要其他机器也能连接,那么需要更改一下配置文件
9.python操作redis
操作字符串
操作列表
操作集合
操作哈希
事务操作
发布与订阅
7.Redis键值对数据库的更多相关文章
- key-value键值型数据库:Redis
key-value键值型数据库:Redis redis Redis是in-memory型(内存型)的键值数据库,数据在磁盘上是持久的,键类型是字符串,值类型是字符串.字符串集合(Set).sorted ...
- redis键值操作
1.1. redis键值操作 1.1.1. keys patten 查询相应的key 可以精确的查,也可以模糊的查 1.1.1.1. 通配符:* ? [] 在redis里,模糊查询key的时候有3个通 ...
- 数据库系统概论(新技术篇)--中国人民大学【第13讲】KEY-VALUE数据库(键值对数据库)
市面上主流的分布式文件系统(FS): (Hadoop的)HDFS,(Google的)GFS 详见ppt 1.数据服务与键值对数据库: 数据服务:data serving数据服务:数据的简单 ...
- redis 键值对 有效期设置
redis 键值对 有效期设置redis中可以使用expire命令设置一个键的生存时间, 到时间后redis会自动删除它<-----> 类比于javaweb系统临时数据 过期删除功能 ex ...
- Redis键值设计(转载)
参考资料:https://blog.csdn.net/iloveyin/article/details/7105181 丰富的数据结构使得redis的设计非常的有趣.不像关系型数据库那样,DEV和DB ...
- docker——Etcd高可用键值对数据库
一.简介 Etcd按照官方介绍: Etcd is a distributed, consistent key-value store for shared configuration and serv ...
- Redis 键值数据类型及基本操作
到目前为止,Redis 支持的键值数据类型如下: 字符串(String) 哈希(Map) 列表(list) 集合(sets) 有序集合(sorted sets) 1. String 字符串类型 s ...
- python 对redis 键值对的操作
我们可以将Redis中的Hashes类型看成具有String Key和String Value的键值对容器.类似python中的dict,javascript的jaon,java 的map,每一个Ha ...
- spring中订阅redis键值过期消息通知
1.首先启用redis通知功能(ubuntu下操作):编辑/etc/redis/redis.conf文件,添加或启用以下内容(过期通知): notify-keyspace-events Ex 或者登陆 ...
随机推荐
- gdb coredum 信息例子
http://blog.csdn.net/hzhsan/article/details/38227647
- 软工实践Beta冲刺(4/7)
队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 1.界面的修改与完善 展示GitHub当日代码/文档签入记 ...
- java计算两个日期之间的相隔天数
[原创] 之前在很多竞赛的题目中有这样饿一类题,计算给定两个日期之间的相隔天数,或者很多类似的题目,都是需要转化到这个问题上时,之前用c++写的时候思想是这样的,一个结构体,包括年月日,还有一个计算下 ...
- PTA实验报告 数组
(第二张代码均为英红的代码) 题目1:题目名称:数组元素循环右移问题 1. 本题PTA提交列表 2. 设计思路(包括流程图) 将数组内每个位置移动,第2个放第一个,第三个放第二个,以此类推.使用两个循 ...
- 在网站中配置MIME类型
经常会遇到这样的情况,某种类型的文件不能够正常下载,*.7z,自定义的文件类型等,需要在配置文件里配置后才能正常下载. 打开Web.Config文件: <system.webServer> ...
- Web-request内置对象在JSP编程中的应用
- 多个jar包的合并
1.将所有jar文件复制至某临时目录中,通过jar命令解压得到所有的.class文件 > jar -xvf xx.jar xx.jar必须为具体的jar,不能为*.jar,会报FileNotFo ...
- 使用 Redis的SETNX命令实现分布式锁
使用Redis的 SETNX 命令可以实现分布式锁,下文介绍其实现方法. SETNX命令简介 命令格式 SETNX key value 将 key 的值设为 value,当且仅当 key 不存在. 若 ...
- 瀑布模型&螺旋模型
软件开发模型:1.瀑布模型1)软件概念阶段 用户需求2)需求分析 软件需求3)架构设计 架构文档4)详细设计 模型设计5)编码阶段 代码文档6)测试阶段瀑布模型的特点是在每个阶段的工作都清晰详尽,容易 ...
- NotifyIcon控件
NotifyIcon就是系统托盘控件.通知区域中的图标是一些进程的快捷方式,这些进程在计算机后台运行,如防病毒程序或音量控制.这些进程不会具有自己的用户界面.NotifyIcon 类提供了编写此功能的 ...