redis基础

redis:非关系型、内存数据库,用于做数据的缓存,由键值对构成,总共有16个数据库(0-15)

一、服务端及客户端命令
  (1)服务端启动命令(就是启动.conf文件)
     sudo redis-server /etc/redis/redis.conf
  (2)客户端启动(就是要连接到那个redis服务端)
     redis-cli -h 127.0.0.1 -p 6397

     测试是否连接成功:
         127.0.0.1:6379> ping
         PONG

二、redis数据库的操作
  (1)公共方法:
    >>查看本数据库中有多少个键(只有这个可以用正则): keys *
    >>选择数据库:    select 10
    >>删除: del 键1 键2
    >>查看键的类型: type 键

  (2)String
    >>添加: set 键 值;  mset 键1 值1 键2 值2
    >>获取: get 键;     mget 键1 键2
    >>追加: append 键 值
    >>删除: del 键1 键2

  (3)hash(属性 值)>>>相当于键套键值对
    >>添加一个属性和值: hset 键 属性 值
    >>添加多个属性和值: hmset 键 属性1 值1 属性2 值2
    >>查看单个属性的值: hget 键 属性1
    >>查看多个属性的值: hmget 键 属性1 属性2
    >>查看所有属性的值: hvals 键
    >>查看键的所有属性: hkeys 键
    >>删除n个属性: hdel 键 属性1 属性2

  (3)list
    >>从左边插入数据(显示相反,没有的键就创建,有就添加不会覆盖原有的): lpush 键 值1 值2 值3
    >>从右边插入数据(显示相同,,没有的键就创建,有就添加不会覆盖原有的): rpush 键 值1 值2 值3
    >>从指定位置插入数据: linsert lst before c 999(从左往右找第一个c)
    >>查看队列中的值: lrange lst 开始下标 结束下标  (首尾都包含)    查看所有 lrange lst 0 -1
    >>修改指定下标的值: lset set 0 hahaha
    >>删除列表中的元素: lrem lst 2 b 从左往右开始数,删除两个b; lrem lst -2 b 从右往左数删除两个b; lrem lst 0 b 删除所有b

  (4)set(不重复,不可修改,无序)
    >>创建: sadd names zhangsan lisi wangwu
    >>查看: smembers names
    >>删除某个: srem names zhangsan

  (5)zset(权重为序,越大越靠后)
    >>添加: zadd names1 3 zhangsan 4 lisi 6 zhaoliu 5 wangwu
    >>查看: zrange names1 0 -1;zrangebyscore name1 4 5
    >>查看某个值的权重: zscore names1 zhangsan
    >>删除指定元素: zrem names zhangsan
    >>删除指定权重范围内的(含前后): zremrangebyscore names 4 5

三、Redis与Python交互(创建多个都是用字典做参数,查看所有键sr.keys("*"))
    # 导入:
    from redis import StrictRedis


    if __name__ == "__main__":
        try:
            # 创建redis链接对象
            sr = StrictRedis(host='127.0.0.1', port=6379, db=0, decode_responses=True)
        except Exception as e:
            print(e)

四、redis持久化

RDB快照

   redis是默认做数据持久化的,默认的方式是快照(snapshotting),把内存的数据写入本地的二进制文件dump.rdb文件中。

快照持久化实现原理:

    Redis借助了fork命令的copy on write机制。在生成快照时,将当前进程fork出一个子进程,然后在子进程中循环所有的数据,将数据写成为RDB文件,使用redis的save命令调用这个过程。

    快照的配置有下面三个级别,配置是在redis的配置文件中。

    RDB快照持久化的优点:

        1. RDB是一个非常紧凑的文件,它保存了某个时间点得数据集,非常适用于数据集的备份,比如您可以在每个小时报保存一下过去24小时内的数据,同时每天保存过去30天的数据,这样即使出了问题您也可以根据需求恢复到不同版本的数据集.

        2. RDB是一个紧凑的单一文件,很方便传送到另一个远端数据中心或者亚马逊的S3(可能加密),非常适用于灾难恢复.

        3. RDB在保存RDB文件时父进程唯一需要做的就是fork出一个子进程,接下来的工作全部由子进程来做,父进程不需要再做其他IO操作,所以RDB持久化方式可以最大化redis的性能。4. AOF相比,在恢复大的数据集的时候,RDB方式会更快一些.

    RDB快照持久化的缺点:

        一旦数据库出现问题,那么我们的RDB文件中保存的数据并不是全新的,从上次RDB文件生成到Redis停机这段时间的数据全部丢掉了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值