You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

12 KiB

技术

Redis入门

概述

Redis是什么?

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

QQ_1775274090376

免费和开源!结构化数据库!

区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis能干什么?

1、内存存储、持久化、内存中是断电即失、所以持久化很重要(AOF\RDB )

2、效率高、高速缓存

3、发布订阅系统

4、......

特性

1、多样数据类型

2、持久化

3、集群

4、事务

5、......

与其他数据库对比

特性 Redis MySQL MongoDB
数据存储 内存 磁盘 磁盘
读写速度 极快 较慢 中等
数据结构 5+种 二维表 文档型
典型用途 缓存、计数器 持久化存储 日志、文档

基础知识

redis默认16个数据库。

默认使用第0个(使用select切换)。

127.0.0.1:6379> select 3
OK

数据库大小:dbsize

127.0.0.1:6379[3]> dbsize
(integer) 0

查看所有key

127.0.0.1:6379[3]> keys *
(empty array)

清空

127.0.0.1:6379[3]> flushdb//清空当前数据库
OK
flushall//清空全部数据库

Redis是单线程的!!

Redis是将所有数据全部存放在内存中的,所以说使用单线程操作效率就是最高的。

Redis数据类型

Redis-Key

代码练习

127.0.0.1:6379[3]> set name =chenchunxiao
OK
127.0.0.1:6379[3]> keys *
1) "name"
127.0.0.1:6379[3]> set age 21
OK
127.0.0.1:6379[3]> keys *
1) "name"
2) "age"
127.0.0.1:6379[3]> exists name
(integer) 1
127.0.0.1:6379[3]> move name 1
(integer) 1
127.0.0.1:6379[3]> keys *
1) "age"
127.0.0.1:6379[3]> set name xiaobao
OK
127.0.0.1:6379[3]> keys *
1) "name"
2) "age"
127.0.0.1:6379[3]> get name
"xiaobao"
127.0.0.1:6379[3]> expire name 10//设置过期时间
(integer) 1
127.0.0.1:6379[3]> ttl name//查看剩余时间
(integer) 0
127.0.0.1:6379[3]> get name
(nil)
127.0.0.1:6379[3]>type name//查看类型

数据类型

1. String(字符串)

特点: 最基本类型,最大512MB

命令 说明 示例
SET 设置值 SET name "zhangsan"
MSET 同时设置多个值 MSET k1 v1 k2 v2 k3 v3
GET 获取值 GET name
DEL 删除键 DEL name
SETNX 不存在时设置 SETNX name "lisi"
INCR 自增1 INCR age
INCRBY 增加指定值 INCRBY age 10
EXPIRE 设置过期时间(秒) EXPIRE name 60
TTL 查看剩余过期时间 TTL name
EXISTS 判断某个key是否存在 EXISTS key
APPEND 追加字符串,如果当前key不存在,就相当于setkey APPEND key1 "hell
GETRANGE 截取字符串 GETRANGE key1 0 3(截取字符串[0,3]) GETRANGE key1 0 -1(获取全部字符串 )
#对象

代码练习

127.0.0.1:6379[3]> set user:1 {name:xiaobao,age:2}
OK
127.0.0.1:6379[3]> mset user:1:name xiaobao user:1:age 2
OK
127.0.0.1:6379[3]> mget user:1:name user:1:age
1) "xiaobao"
2) "2"
#先get然后再set

代码练习

127.0.0.1:6379[3]> getset db redis
(nil)
127.0.0.1:6379[3]> get db
"redis"
127.0.0.1:6379[3]> getset db mongodb
"redis"
127.0.0.1:6379[3]> get db
"mongodb"

应用场景: 缓存、计数器、分布式锁

2. Hash(哈希)

特点: 键值对集合,适合存储对象

命令 说明 示例
HSET 设置字段 HSET user:1 name "张三" age 20
HGET 获取字段 HGET user:1 name
HGETALL 获取所有字段 HGETALL user:1
HDEL 删除字段 HDEL user:1 age
HINCRBY 字段自增 HINCRBY user:1 age 1

应用场景: 存储对象(用户信息、商品信息)、购物车

3. List(列表)

QQ_1775293393918

特点: 有序可重复,双向链表

命令 说明 示例
LPUSH 左侧插入 LPUSH list "a" "b"
RPUSH 右侧插入 RPUSH list "c" "d"
LPOP 左侧弹出 LPOP list
RPOP 右侧弹出 RPOP list
LRANGE 获取指定范围 LRANGE list 0 -1
LLEN 获取长度 LLEN list

代码练习

127.0.0.1:6379[3]> LPUSH LIST ONE
(integer) 1
127.0.0.1:6379[3]> LPUSH LIST TWO
(integer) 2
127.0.0.1:6379[3]> LPUSH LIST THREE
(integer) 3
127.0.0.1:6379[3]> lrange list 0 -1
(empty array)
127.0.0.1:6379[3]> LRANGE LIST 0 -1
1) "THREE"
2) "TWO"
3) "ONE"
127.0.0.1:6379[3]> RPUSH LIST RIGHT
(integer) 4
127.0.0.1:6379[3]> LRANGE LIST 0 -1
1) "THREE"
2) "TWO"
3) "ONE"
4) "RIGHT"

应用场景: 消息队列、最新消息列表、历史记录

4. Set(集合)

特点: 无序不可重复,支持集合运算

命令 说明 示例
SADD 添加元素 SADD tags "java" "python"
SMEMBERS 获取所有元素 SMEMBERS tags
SISMEMBER 判断是否存在 SISMEMBER tags "java"
SREM 删除元素 SREM tags "python"
SINTER 交集 SINTER set1 set2
SUNION 并集 SUNION set1 set2
SDIFF 差集 SDIFF set1 set2

应用场景: 标签系统、共同好友、抽奖

5. ZSet(有序集合)

特点: 每个元素关联分数(score),按分数排序

命令 说明 示例
ZADD 添加元素 ZADD rank 100 "张三" 90 "李四"
ZRANGE 升序获取 ZRANGE rank 0 -1
ZREVRANGE 降序获取 ZREVRANGE rank 0 -1
ZSCORE 获取分数 ZSCORE rank "张三"
ZINCRBY 增加分数 ZINCRBY rank 10 "张三"
ZRANK 获取排名 ZRANK rank "张三"

应用场景: 排行榜、延迟队列

持久化

Redis提供两种持久化方式:

方式 RDB AOF
原理 定时生成内存快照 记录每条写命令
文件 dump.rdb appendonly.aof
恢复速度
数据安全性 可能丢失最后一次快照 最多丢失1秒数据
默认 开启 关闭

事务

1. 事务特点

  • Redis事务是一次性、顺序性、排他性的命令队列
  • 不支持回滚:某条命令失败,其他命令仍会执行
  • 通过 MULTIEXECDISCARDWATCH 实现

2. 事务命令

命令 说明
MULTI 开启事务
EXEC 执行事务中的所有命令
DISCARD 取消事务
WATCH key 监视一个或多个键,事务执行前被修改则事务中断
UNWATCH 取消监视

股票知识

AI金牛

一、功能模块

功能名称 定位
金牛起爆 捕捉即将启动主升浪的个股
进攻K线 识别强势突破的K线形态
小牛 筛选处于上升初期的个股
度牛尺 量化评估个股强弱程度
疯牛出栏 捕捉强势加速上涨的个股

二、各功能解读

1. 金牛起爆

含义: 找那些可能要涨的股票

技术特征:

  • 长期横盘或小幅上涨后
  • 成交量突然放大
  • 出现突破性阳线

操作参考: 信号出现后关注,配合放量确认可考虑跟进


2. 进攻K线

含义: 找那些K线长得像要进攻的股票(比如大阳线)

常见形态:

形态 特征 含义
大阳线 涨幅>5%,实体长 多方强势
突破K线 突破前期高点 打开上涨空间
反包K线 阳线包住前日阴线 反转信号

3. 小牛

含义: 找那些刚有点起色的股票,涨得还不高

特征:

  • 刚从底部启动
  • 涨幅不大(通常<30%)
  • 均线开始多头排列

操作参考: 适合低位布局,风险相对较小


4. 度牛尺

含义: 量化评估个股“牛气”程度的指标

可能的评估维度:

维度 权重
涨幅排名 30%
成交量放大倍数 25%
均线排列 20%
相对强度 15%
换手率 10%

使用方式: 分数越高,代表个股越强势


5. 疯牛出栏

含义: 找那些已经涨疯了的股票,追高风险大

特征:

  • 连续大阳线或涨停
  • 成交量急剧放大
  • 脱离原有轨道

风险提示: 涨幅已大,追高风险较高,适合短线激进策略


三、功能使用流程

text

第一步:金牛起爆 / 小牛 → 初筛关注标的
第二步:度牛尺 → 量化评分,优中选优
第三步:进攻K线 → 确认买入时机
第四步:疯牛出栏 → 捕捉加速段(高风险)

四、风险等级对比

功能 风险等级 适合人群
小牛 稳健型
金牛起爆 平衡型
进攻K线 波段操作
疯牛出栏 激进短线