美文网首页
day39 Redis数据库

day39 Redis数据库

作者: barriers | 来源:发表于2018-12-27 17:59 被阅读0次

    win+r输入框中输入:services.msc跳到服务位置

    非关系型数据库

    KV存储系统 - REmote DIctionary Server(Redis)
    提供高速缓存服务 - 缓存热点数据(访问量大数据量不大)
    缓解了数据库的压力(高频访问数据不用直接访问数据库)

    登陆redis

    1. redis-server --requirepass 1qaz2wsx --appendonly yes --port 6379 > redis.log 2> redis-error.log & 设置redis数据库的密码为1qaz2wsx,端口为6379
      &:不显示输出信息,直接跳到输入密码界面
    2. redis-cli
      3.auth 1qaz2wsx(输入密码)

    1.python中pymysql常遇到的问题

    Can't connect to MySQL server - 主机ip设置、端口设置错误或服务器没有开启
    Unknown database 'hrss' - 数据库名字设置错误
    'NoneType' object has no attribute 'encoding' - 编码设置错误
    Access denied for user - 用户名或密码错误
    init() got an unexpected keyword argument - 初始化参数名错误
    %d format: a number is required, not str - 端口写成了字符串

    2翻页

    import pymysql
    from pymysql.cursors import DictCursor
    con = pymysql.connect(host='localhost', port=3306,
                      database='hrs', charset='utf8',
                      user='root', password='123456', autocommit=True)
    class Emp():
        def __init__(self,no,name,job,sal):
            self.no=no
            self.name=name
            self.job=job
            self.sal=sal
        def __str__(self):
            return f'{self.no}-{self.name}-{self.job}-{self.sal}'
    def main():
        page=int(input('页码:'))
        size=int(input('页面大小:'))
        try:
           with con.cursor(DictCursor) as cursor:
            -------显示从第几页看起,一页显示多少行---------------
                cursor.execute('select * from 
                  tb_emp limit (%s,%s)',((page-1)*size,size)) 
                for result in cursor.fetchall():
                    emp=Emp(*result)
                    print(emp)
        finally:
            con.close()
    

    def foo(a,*,b):
    *前面的参数叫做位置参数,传参时对号入座即可
    *后面的参数叫做命名关键字参数,传参时必须用“参数名=参数值”的形式传参
    *变成args或者*kwargs,b仍然是命名关键字参数

    def foo(a,*,b):
        return a+b
    print(foo(1,b=2))
    print(foo(a=1,b=2))
    
    
    ----------用字符串长度排序------------
    items=['hello','watermelon','waxberry','zoo','apple']
    print(sorted(items))
    print(sorted(items,key=lambda x:len(x),reverse=True))
    

    3redis常用命令

    jobs查看后台任务
    bg%1让任务在后台运行
    fg%1 让任务回到前台运行
    redis-server & 让redis在后台运行
    ctl+z 把任务放到后台,但不一定让他运行
    ctl +c 关闭前台进程
    ps -ef | grep redis-server 查看redis-server的进程
    kill 23420 - 杀id为23420的进程(redis)
    netstat -nap | grep 6379 查看端口状态
    du 查看磁盘占比情况
    redis-server > redis.log 2>redis-error.log& 开启进程不要输出,直接跳入输入界面
    redis-cli -h 120.77.222.217 -p 6379 用客户端连接redis

    4非关系型数据库redis

    redis-server --requirepass 1qaz2wsx --appendonly yes --port 6379 - 设置redis数据库的密码为1qaz2wsx,端口为6379
    KV存储系统 - REmote DIctionary Server(Redis)
    提供高速缓存服务 - 缓存热点数据(访问量大数据量不大)
    缓解了数据库的压力(高频访问数据不用直接访问数据库)
    Redis提供了两种持久化数据的方案
    1.RDB - 默认开启
    2.AOF - 默认关闭 --appendonly yes (考虑数据不丢失就开启;考虑性能就不开启,设置为no)
    redis-server & 让redis在后台运行
    ctl+z 把任务放到后台,但不一定让他运行
    history -c清除历史记录
    redis-cli -h 120.77.222.217 -p 6379 - 用客户端连接redis
    auth - 验证身份
    ping - 查看是否成功连接
    set - 设置键值对
    get - 取值
    expire - 设置超时时间
    del - 删除键
    keys -查看键
    exists - 查看键是否存在
    flushdb - 清空数据库中的键值对
    flushall - 清除所有数据库中的所有键值对
    select 1 切换到第二个编号为1的数据库
    save/bgsave 保存数据/后台保存数据
    shutdown -关闭服务器
    quit - 退出
    dbsize - 查看当前数据库有多少键值对

    set username jack设置username为jack
    get username 查询username
    expire jack 30 在后面设置jack的存在时间为30秒
    del jack 删除jack键值对
    set email jack@189.com ex 20 设置存储时间为20s
    ttl email 查询email还能存在的时间
    keys * 查看所有的键值对(*为统配符)
    keys y* 查看带y的所有键值对
    flushdb 清空数据库
    exists 键 查看键值对是否存在(1代表存在,0代表不存在)
    

    登陆redis:

    1. redis-server --requirepass 1qaz2wsx --appendonly yes --port 6379 > redis.log 2> redis-error.log & 设置redis数据库的密码为1qaz2wsx,端口为6379
      &:不显示输出信息,直接跳到输入密码界面
    2. redis-cli
      3.auth 1qaz2wsx(输入密码)

    相关文章

      网友评论

          本文标题:day39 Redis数据库

          本文链接:https://www.haomeiwen.com/subject/igrdlqtx.html