电商网站建设与课程设计网络建设的网站

当前位置: 首页 > news >正文

电商网站建设与课程设计,网络建设的网站,开发游戏app需要多少钱,网站的速度Redis-day01-note 文章目录Redis-day01-note安装配置文件详解数据类型字符串类型(string)列表数据类型#xff08;List#xff09;**与python交互Redis介绍特点及优点 1、开源的#xff0c;使用C编写#xff0c;基于内存且支持持久化 2、高性能的…Redis-day01-note 文章目录Redis-day01-note安装配置文件详解数据类型字符串类型(string)列表数据类型List**与python交互Redis介绍特点及优点 1、开源的使用C编写基于内存且支持持久化 2、高性能的Key-Value的NoSQL数据库 3、支持数据类型丰富字符串strings散列hashes列表lists集合sets有序集合sorted sets 等等 4、支持多种编程语言C C Python Java PHP … 5、‘单进程’单线程与其他数据库对比 1、MySQL : 关系型数据库表格基于磁盘慢 2、MongoDB键值对文档型数据库值为类似JSON文档数据结构相对单一 3、Redis的诞生是为了解决什么问题# 解决硬盘IO带来的性能瓶颈应用场景 1缓存 2并发计数 3排行榜 4生产者消费者模型 …redis版本 1、最新版本5.0 2、常用版本2.4、2.6、2.8、3.0(里程碑)、3.2、3.4、4.0(教学环境版本)、5.0Redis附加功能 1、持久化将内存中数据保存到磁盘中保证数据安全方便进行数据备份和恢复 2、过期键功能为键设置一个过期时间让它在指定时间内自动删除节省内存空间# 音乐播放器日播放排名过期自动删除 3、事务功能原子的执行多个操作 4、主从复制 5、Sentinel哨兵安装 Ubuntu

安装

sudo apt-get install redis-server

服务端启动

sudo /etc/init.d/redis-server status | start | stop | restart

客户端连接

redis-cli -h IP地址 -p 6379 -a 密码配置文件详解 配置文件所在路径 /etc/redis/redis.conf mysql的配置文件在哪里 : /etc/mysql/mysql.conf.d/mysqld.cnf设置连接密码 1、requirepass 密码 2、重启服务sudo /etc/init.d/redis-server restart 3、客户端连接方案1redis-cli -h 127.0.0.1 -p 6379 -a 123456127.0.0.1:6379ping方案2redis-cli127.0.0.1:6379auth 密码127.0.0.1:6379ping允许远程连接 1、注释掉本地IP地址绑定69行: # bind 127.0.0.1 ::1 2、关闭保护模式(把yes改为no)88行: protected-mode no 3、重启服务sudo /etc/init.d/redis-server restart数据类型 通用命令 适用于所有数据类型

切换库(number的值在0-15之间,db0 ~ db15)

select number

查看键

keys 表达式 # keys *

数据类型

TYPE key

键是否存在

exists key

删除键

del key

键重命名

rename key newkey

清除当前库中所有数据慎用

flushdb

清除所有库中所有数据慎用

flushall字符串类型(string) 特点 1、字符串、数字都会转为字符串来存储 2、以二进制的方式存储在内存中字符串常用命令-必须掌握

1. 设置一个key-value

set key value

2. 获取key的值

get key

3. key不存在时再进行设置(nx)

set key value nx # not exists

4. 设置过期时间(ex)

set key value ex seconds# 5. 同时设置多个key-value mset key1 value1 key2 value2 key3 value3

6. 同时获取多个key-value

mget key1 key2 key3 字符串常用命令-作为了解

1.获取长度

strlen key

2.获取指定范围切片内容

getrange key start stop

3.从索引值开始value替换原内容

setrange key index value

4.追加拼接value的值

append key value数值操作-字符串类型数字(必须掌握)

整数操作

INCRBY key 步长 DECRBY key 步长 INCR key : 1操作 DECR key : -1操作

应用场景: 抖音上有人关注你了是不是可以用INCR呢如果取消关注了是不是可以用DECR

浮点数操作: 自动先转为数字类型然后再进行相加减不能使用append

incrbyfloat key step键的命名规范 ​ mset wang:email wangweichaotedu.cn 127.0.0.1:6379 mset wang:email wangweichaotedu.cn guo:email guoxiaonaotedu.cn OK 127.0.0.1:6379 mget wang:email guo:email

  1. wangweichaotedu.cn

  2. guoxiaonaotedu.cn 127.0.0.1:6379 string命令汇总

    字符串操作

    1、set key value 2、set key value nx 3、get key 3、mset key1 value1 key2 value2 4、mget key1 key2 key3 5、set key value nx ex seconds 6、strlen key

    返回旧值并设置新值如果键不存在就创建并赋值

    7、getset key value

    数字操作

    7、incrby key 步长 8、decrby key 步长 9、incr key 10、decr key 11、incrbyfloat key number#(可为正数或负数)

    设置过期时间的两种方式

    方式一

    1、set key value ex 3

    方式二

    1、set key value 2、expire[通用] key 5 # 秒 3、pexpire[通用] key 5 # 毫秒

    查看存活时间

    ttl[通用] key返回值 0 代表此key的存活剩余时间 【单位秒】-2 代表key不存在-1 代表此key没有过期时间则此key为常驻redis的key

    删除过期

    persist[通用] keystring数据类型注意

    key值取值原则

    1、key值不宜过长消耗内存且在数据中查找这类键值的计算成本高 2、不宜过短可读性较差

    1、一个字符串类型的值最多能存储512M内容练习 1、查看 db0 库中所有的键#select 0#keys * 2、设置键 trill:username 对应的值为 user001并查看#set trill:username user001#get trill:username 3、获取 trill:username 值的长度#strlen trill:username 4、一次性设置 trill:password 、trill:gender、trill:fansnumber 并查看值自定义#mset trill:password 123 trill:gender M trill:fansnumber 500 5、查看键 trill:score 是否存在#exists trill:score 6、增加10个粉丝#incrby trill:fansnumber 10 7、增加2个粉丝一个一个加#incr trill:fansnumber#incr trill:fansnumber 8、有3个粉丝取消关注你了#decrby trill:fansnumber 3 9、又有1个粉丝取消关注你了 10、思考、思考、思考…,清除当前库#flushdb 11、一万个思考之后清除所有库#flushall过期key的处理 主动扫描 1,redis会将带过期时间的key 统一放置在一个 过期字典 的地方 2,每100ms执行一次 对 过期字典的 扫描1) 在过期字典中随机挑选20个key2) 检查这20个key的过期时间删除过期key3) 如果过期key比例超过 总key的 14 重复 1- 325ms超时时间避免扫描过程卡死 大量key同时过期会引发25ms卡顿问题解决方案为尽可能让key的过期时间分散 例如 expire key_1 300 (1-30s的随机值偏移)惰性删除1获取key的时候进行过期时间检查2检查是否当前内存达到maxmemory达到上限后触发淘汰策略noeviction 写服务拒接/读请求 默认配置volatile-lru 对所有带过期时间的key 进行lru淘汰volatile-ttl 对所有带过期时间的key ttl越小的优先淘汰 列表数据类型List** 特点 1、元素是字符串类型 2、列表头尾增删快中间增删慢增删元素是常态 3、元素可重复 4、最多可包含2^32 -1个元素 5、索引同python列表列表常用命令

    1、从列表头部压入元素LPUSH key value1 value2 2、从列表尾部压入元素RPUSH key value1 value2 3、从列表src尾部弹出1个元素,压到列表dst的头部RPOPLPUSH src dst 4、在列表指定元素后/前插入元素LINSERT key after|before value newvalue# 查 5、查看列表中元素LRANGE key start stop# 查看列表中所有元素: LRANGE key 0 -1 6、获取列表长度LLEN key# 删 7、从列表头部弹出1个元素LPOP key 8、从列表尾部弹出1个元素RPOP key 9、列表头部,阻塞弹出,列表为空时阻塞BLPOP key timeout 10、列表尾部,阻塞弹出,列表为空时阻塞BRPOP key timeout# 关于BLPOP 和 BRPOP1、如果弹出的列表不存在或者为空就会阻塞2、超时时间设置为0就是永久阻塞直到有数据可以弹出3、如果多个客户端阻塞再同一个列表上使用First In First Service原则先到先服务 11、删除指定元素LREM key count valuecount0表示从头部开始向表尾搜索移除与value相等的元素数量为countcount0表示从尾部开始向表头搜索移除与value相等的元素数量为countcount0移除表中所有与value相等的值 12、保留指定范围内的元素LTRIM key start stopLTRIM mylist1 0 2 # 只保留前3条# 应用场景: 保存微博评论最后500条LTRIM weibo:comments 0 499# 改 13、LSET key index newvalue练习 1、查看所有的键 2、向列表 spider:urls 中以RPUSH放入如下几个元素01_baidu.com、02_taobao.com、03_sina.com、04_jd.com、05_xxx.com 3、查看列表中所有元素 4、查看列表长度 5、将列表中01_baidu.com 改为 01_tmall.com 6、在列表中04_jd.com之后再加1个元素 02_taobao.com 7、弹出列表中的最后一个元素 8、删除列表中所有的 02_taobao.com 9、剔除列表中的其他元素只剩前3条与python交互 模块(redis) Ubuntu sudo pip3 install redis使用流程 import redis

    创建数据库连接对象

    r redis.Redis(host127.0.0.1,port6379,db0,password123456)通用命令代码示例 python操作list list案例: 一个进程负责生产任务一个进程负责消费任务 进程1: 生产者 进程2: 消费者 python操作string