zoukankan      html  css  js  c++  java
  • 6.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

    hexists map key

    判断map中是否存在键为key的键值对

    hlen map

    查看map的键值对的个数

    6.Redis的事务操作

    • 事务操作:redis事务一次可以执行的多个命令,事务具有以下特征   
    • 隔离操作:事务中的所有操作都会序列化、按顺序的进行,不会被其他命令打扰

    监视一个或多个key

    但是如果我在其他的窗口执行了该操作

    取消监视:unwatch key,不加key则是全部取消



    7.Redis的发布订阅操作

    订阅某个频道:subscribe channel

    给某个频道发送信息:publish channel message

    首先要先有订阅,才能去发送信息,否则都没有人订阅,发给谁啊。既然有订阅有发布,那么我们就要有两个窗口

    再来看看当前的订阅的终端



    8.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
      


    9.redis设置连接密码

    这样的话,当别人进入redis想乱搞的话,就不可能了。

    也可以在登录的时候 指定密码,redis-cli -p 6379 -h 127.0.0.1 -a zgg



    10.其他机器连接本机redis

    默认只能本机连接,如果想要其他机器也能连接,那么需要更改一下配置文件



    11.python操作redis

    操作字符串

    操作列表

    操作集合

    操作哈希

    事务操作

    发布与订阅

  • 相关阅读:
    SVN服务器使用和搭建
    jenkins以.war包安装配置教程
    Django数据库与程序交互
    工作中常用到的linux命令
    js获取元素属性
    Jenkins利用插件持续集成的思路及安装
    web前端面试第一次[javascript函数和方法的区别]
    web前端面试第一次[定时器]
    linux卸载mysql
    mysql启动错误:Starting MySQL... ERROR! The server quit without updating PID file (/data/mysql/mysql.pid).
  • 原文地址:https://www.cnblogs.com/traditional/p/11253655.html
Copyright © 2011-2022 走看看