zoukankan      html  css  js  c++  java
  • redis

    redis(默认端口6379)

    它是一种非关系型数据库,他的数据保存在内存当中,所以存储非常快,但也可以刷到硬盘上。

    redis的使用场景(时时在变化,但数据还不是那么重要)

    一、登陆会话存储:cookie和session

    二、排行版/计数器:比如一些秀场类的项目。

    三、作为消息队列:celery就是使用redis作为中间人

    四、一些常用的数据缓存

    五、好友关系

    六、发布和订阅功能

    redis和memcached比较

    redis的安装与使用

    首先编译安装redis
    
    wget http://download.redis.io/releases/redis-5.0.0.tar.gz
    
    tar -zxvf redis-5.0.0.tar.gz
    
    yum install gcc
    
    yum install gcc-c++
    
    make
    
    cp src目录下的redis-server /usr/bin/ 服务端启动文件
    
    cp src目录下的redis-cli /usr/bin/ 客户端启动文件
    
    而后启动redis-server
    
    redis-server &
    
    安装好后执行如下命令就可以进入到redis:
    
    redis-cli –p 6379 –h 127.0.0.1
    
    redis的启动: redis-server
    
    redis的进入: redis-cli –p 6379 –h ip
    
    redis的停止:进入数据库后输入 shutdown
    
    redis的配置文件修改后如何加载?
    
    redis-server redis.cnf的绝对路径 &

    编译安装出现的问题

    报这个错误的意思是说链接redis 时只能通过本地localhost (127.0.0.1)这个来链接,而不能用网络ip(192.168..)这个链接,解决方法如下:

    一、停掉redis,使用ps查看有关redis所有的进程,全部杀死

    二、打开redis配置文件,注释掉bind 127.0.0.1

     daemonize yes 这是redis的默认守护进程,打开它,把yes修改为no

    protected-mode no 这是redis的保护模式,把yes修改为no

    设置密码 requirepass redis123

    三、以加载配置文件的方式启动让修改的配置生效

    四、进入后输入密码 auth 密码  即可排除此错误。

    如果使用make不能安装,报错,使用如下命令:make MALLOC=libc

    字符串

    添加:

    setkey value

    查询:

    get key

    删除:

    delkey

    过期时间的设置:没过期之间是可以get到的,时间一过,就get不到了

    set key value ex time

    查看所有的key

    keys  *

    redis是默认有16个数据库,范围是(0-15)

    redis的切换

    select 数据库名

    列表

    添加:

    lpush key value从左往右

    rpush key value 从右往左

    查看:

    lrange key 0   -1  这是查看全部(下标是从0开始排列)

    移除列表的第一个元素并返回移除的元素:

    lpop key

    移除尾元素:

    rpop key

    指定返回几个元素:

    lindex key 1

    查看当前列表几个元素:

    llen key

    删除指定元素:

    lrem key 要删除的个数 value

    集合(添加重复值无效)

    添加:

    sadd key value

    查看:

    smembers key

    移除:

    srem key value

    查看集合中元素个数:

    scard key

    查看两个集合的交集:

     sinter 集合1 集合2

    查看两个集合的并集:

    sunion 集合1 集合2

    查看两个集合的差集:这个是后头的集合差前头的

    sdiff 集合1 集合2

    hash 哈希操作(相当于python中字典套字典)

    添加:

    hset   key  file  value

    获取:

    hget  key   file

    查看所有的value:

    hgetall  key

    获取所有的field:

    hkeys key

    查看所有的值:

    hvals key

    判断是否存在某个field:

    hexists key field

    查看长度:

    hlen key

    事物操作

    隔离操作:事务中的所有命令都会序列化、按顺序地执行,不会被其他命令打扰。

    原子操作:事务中的命令要么全部被执行,要么全部都不执行。

    redis开启事务是multi

    提交事务是exec

    取消事务/回滚 discard

    发布订阅功能

    发布消息: publish 通道(名字随便写) 信息

    打开另一个终端

    订阅某个频道的消息: subscribe 通道(名字随便写)

    持久化

    redis有两种备份方式:rdb(默认开始这个方式)跟aof

     

    如何关闭rdb的备份方式:

    vim  redis.conf

    save 900 1 900秒有一个更改性操作就写入到rdb文件

    save 300 10 300秒之内发生了10次更改性操作我就写入到rdb文件

    save 60 10000 60秒以内触发了1万次更改性操作就写入到rdb文件

    这三个条件一个被触发,就会启用rdb备份。

    搜索save 把三个数字段注释掉即可。

    同步机制:可以指定某个时间内发生多少个命令进行同步

    存储内容:存储到硬盘 dump.db这个文件里,只存储值,不存储语法。存储的是redis具体的值

    存放路径: 第一次启动,dump.rdb文件会根据你启动时的路径而生成。使用config get dir 可以获取此文件的路径。

    优点:文件体积比aof小

    因为存储的是redis具体的值,并且经过压缩,恢复速度快。

    缺点:因为他的同步机制,一般设置成5分钟保存一次,但是在这种情况下,如果服务器故障,会造成5分钟的数据丢失。

    如果内存数据较大,备份很耗时

    aof备份的开启:

    在配置文件redis.conf 查找 appendonly, 把no改成yes即打开。

    存储位置:redis配置文件中dir是指定备份文件的存放路径,可以修改,修改后需加载生效。

    同步机制:每秒同步或每次发生命令后同步

    存储内容:备份是语法,存储的更新操作命令

    优点:因为他是每秒或每更新操作触发备份,所以,当服务器故障,最多丢失1秒数据。

    他不会备份整个库,你更新什么,我备份什么。

    如果aof文件比较大,redis重写,只保留最小集合。(没有重复的命令)

    缺点:没有压缩,体积大

    因为每秒或每次操作触发备份,当并发量大时,备份慢

    因为存储的是命令,恢复比不上rdb

    python操作redis

    首先打开redis配置文件,找到bind,把ip修改成本机ip

    注意,先检查是不是安装了两个版本的redis

    而后把redis.cnf中的bind修改成本机ip,而后加载配置文件

    打开python

    pip install redis

    from redis import Redis

    初始化redis实例变量:

    xtredis = Redis(host=’ip’,port=6379,db=0-15中的一个)

    此处ip需要去redis配置文件修改相应的bind ip

    而后就可以进行相应的操作:

    xtredis.set(‘username’,’lanhuiling’)

  • 相关阅读:
    【大胃王】2013暴食女王巅峰战(安吉拉x三宅x正司x木下)熟肉+高能
    破解 CrackMe#1 [UBC] by bRaINbuSY
    栈实现符号平衡检测
    简单的栈
    数独算法
    win32绘图基础
    Win32基础知识整理
    Win32最简单的程序
    初学layer
    android 虚线
  • 原文地址:https://www.cnblogs.com/shuaiyin/p/10983428.html
Copyright © 2011-2022 走看看