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键值对数据库的更多相关文章

  1. key-value键值型数据库:Redis

    key-value键值型数据库:Redis redis Redis是in-memory型(内存型)的键值数据库,数据在磁盘上是持久的,键类型是字符串,值类型是字符串.字符串集合(Set).sorted ...

  2. redis键值操作

    1.1. redis键值操作 1.1.1. keys patten 查询相应的key 可以精确的查,也可以模糊的查 1.1.1.1. 通配符:* ? [] 在redis里,模糊查询key的时候有3个通 ...

  3. 数据库系统概论(新技术篇)--中国人民大学【第13讲】KEY-VALUE数据库(键值对数据库)

    市面上主流的分布式文件系统(FS): (Hadoop的)HDFS,(Google的)GFS     详见ppt   1.数据服务与键值对数据库: 数据服务:data serving数据服务:数据的简单 ...

  4. redis 键值对 有效期设置

    redis 键值对 有效期设置redis中可以使用expire命令设置一个键的生存时间, 到时间后redis会自动删除它<-----> 类比于javaweb系统临时数据 过期删除功能 ex ...

  5. Redis键值设计(转载)

    参考资料:https://blog.csdn.net/iloveyin/article/details/7105181 丰富的数据结构使得redis的设计非常的有趣.不像关系型数据库那样,DEV和DB ...

  6. docker——Etcd高可用键值对数据库

    一.简介 Etcd按照官方介绍: Etcd is a distributed, consistent key-value store for shared configuration and serv ...

  7. Redis 键值数据类型及基本操作

    到目前为止,Redis 支持的键值数据类型如下: 字符串(String) 哈希(Map) 列表(list) 集合(sets) 有序集合(sorted sets)   1. String 字符串类型 s ...

  8. python 对redis 键值对的操作

    我们可以将Redis中的Hashes类型看成具有String Key和String Value的键值对容器.类似python中的dict,javascript的jaon,java 的map,每一个Ha ...

  9. spring中订阅redis键值过期消息通知

    1.首先启用redis通知功能(ubuntu下操作):编辑/etc/redis/redis.conf文件,添加或启用以下内容(过期通知): notify-keyspace-events Ex 或者登陆 ...

随机推荐

  1. java课程设计 学生管理系统

    学生成绩管理系统 可实现功能 学生管理系统 查询学生信息:姓名.学号.性别.出生年月日.(学号自动生成且唯一) 查询学生成绩:每个人都有数学.Java与体育与选修课 查询学生课程 进行公选课选课 教师 ...

  2. 弹框中的elment-form在弹框重新打开后,怎么初始化验证信息

    如果弹框关闭前有错误提示,弹框重新打开,由于没重新刷新页面,该错误还是存在.... 解决办法:弹框中的内容写成一个组件,prop接收父元素弹框的状态,并监听且reset表格 1. cnpm insta ...

  3. ui-grid表格怎么实现内容居中

    这次是思想落后了,只关注怎么使用原生的ui-grid样式来实现这一需求,后来发现可以通过此列的cellTemplate来为列指定内容,从而可以使用css调整样式. ps:其实有时候换种思路,豁然开朗. ...

  4. win7 C/C++,QT安装环境总结

    1. 安装VMware,但是不能用,发现是权限问题,解决方式:使用管理员运行模式即可: 2. 安装win7 ultimate x64,找了半天找不到密钥,只要用激活软件,目前来说系统可用 3. 安装 ...

  5. php laravel 框架搭建与运行

    目录 安装 composer 安装 laravel 运行 php hello world 一.安装 composer (mac) 下载 composer.phar 下载地址:https://getco ...

  6. [C/C++] malloc内存分配与free内存释放原理

    1.问题的引入: 为什么要使用malloc,主要是因为在代码中,为了节约内存,很多数据都是动态生成的,所以会用malloc,对应于C++中的new,底层还是调用malloc. 2.碎片的问题: 会有内 ...

  7. 多线程 调用多线程的方法 Runtime与ProcessBuilder

    一般我们使用Java运行其他类中的方法的时候,无论是静态调用还是动态调用,都是在当前的进程中执行的.也就是只有一个Java虚拟机实例在运行.有时候需要通过Java代码启动多个Java子进程,这样做会消 ...

  8. [bzoj1062] [NOI2008]糖果雨

    Description 有一个美丽的童话:在天空的尽头有一个" 糖果国" ,这里大到摩天大厦,小到小花小草都是用糖果建造而成的.更加神奇的是,天空中飘满了五颜六色的糖果云,很快糖果 ...

  9. cookie 是存储于访问者的计算机中的变量

    今天把javascript如何用来创建及存储cookie复习了一下,其中的一点体会拿出来和大家讨论,首先看一下基础知识: 什么是cookie cookie 是存储于访问者的计算机中的变量.每当同一台计 ...

  10. Why is the ibdata1 file continuously growing in MySQL?

    We receive this question about the ibdata1 file in MySQL very often in Percona Support. The panic st ...