2.Redis10大数据类型

文章目录

      • Redis Key(键)操作命令
      • 1.redis字符串 (String)
        • 案例:
            • 最常用:
            • 同时设置/获取多个键值:
            • 获取指定区间范围内的值:
            • 数值增减:
            • 获取字符串长度和内容追加:
            • 分布式锁:
            • getset:(先get再set)
        • 应用场景:
      • 2.redis列表 (List)
        • 案例:
            • 左边添加/右边添加/从左边开始遍历
            • 按照索引下标获得元素(从上到下)
            • 获取列表中元素个数
            • 删除N个值等于v1的元素
            • 截取指定范围的值后重新赋值给key
            • 源列表 目的列表
            • 给下标为index重新赋值
            • 已经有值插入的新值
        • 应用场景:
      • 3.redis哈希表 (Hash)
        • 案例:
            • hset/hget/hmest/hmget/hgetall/hdel
            • 获取某个key的全部数量
            • 在key里面的某个值的key
            • hkeys/hvals
            • hincrby/hincrfloat
            • hsetnx
        • 应用场景:
      • 4.redis集合 (Set)
        • 案例:
            • 添加元素
            • 遍历集合
            • 判断元素是否在集合中
            • 删除元素
            • 获取元素个数
            • 从集合中随机展现设置的数字个数元素,元素不删除
            • 从集合中随机弹出一个元素,并且删除
            • 在key1里已存在的某个值,将key1存在的值迁移给key2
            • 集合运算(交、并、差)
        • 应用场景:
      • 5.redis有序集合 (ZSet/Sorted set)
        • 案例:
            • 向有序集合添加一个元素和该元素的分数
            • 获取元素(从小到大)
            • 获取元素(从大到小)
            • 按照分数范围取值
            • 获取元素分数
            • 获取元素个数
            • 删除元素
            • 获取指定分数范围内的元素个数
            • 获取元素下标(顺序)
            • 获取元素下标(逆序)
        • 应用场景:
      • 6.redis地理空间 (GEO)
      • 7.redis基数统计 (HyperLogLog)
      • 8.redis位图 (bitmap)
      • 9.redis位域 (bitfield)
      • 10.redis流 (Stream)

Redis Key(键)操作命令

命令含义
keys*查询当前库所有的key
exists key判断某个key是否存在(1:true 0:false)
type key查看key的类型
del key删除指定的key数据 (1:true 0:false)
unlink key非阻塞删除,仅仅将keys从kepspace元数据中删除,真正的删除会在后续异步中操作
ttl key查看还有多少秒过期,-1永远不过期,-2表示已过期
expire key给指定的key设置过期时间
move key dbindex [0-15]将当前数据的key移动到指定的数据库db当中
select dbindex切换数据库[0-15] 默认为0
dbsize查看当前数据库key的数量
flushdb清空当前数据库
flushall清除所有数据库

命令不区分大小写,但是key区分大小写

1.redis字符串 (String)

String(字符串)

String是redis最基本的类型,一个key对应一个value(单值单value)

String类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化对象。

string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

案例:
最常用:

set key value / get key

127.0.0.1:6379> set k1 helloworld
OK
127.0.0.1:6379> get k1
"helloworld"

set k1 v1 get 第一次返回旧值 在get返回新值

127.0.0.1:6379> set k1 v1 get
"helloworld"
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> 
同时设置/获取多个键值:

1.mset key value

127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK

2.mget key

127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"

3.mset/mget/msetnx

注意!msetnx 当前key(整体)不存在才会建立成功 即:同时不存在key 设立成功 只要有一个存在 就不会创建成功

127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> msetnx k1 v1 k4 v4
(integer) 0
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> get k4
(nil)
127.0.0.1:6379> msetnx k5 v5 k6 v6
(integer) 1
127.0.0.1:6379> get k5
"v5"
127.0.0.1:6379> get k6
"v6"
获取指定区间范围内的值:

setrange/getrange

getrange:类似于java的substring 只不过redis的范围是闭区间 java是左闭右开区间

127.0.0.1:6379> set k1 abcd1234
OK
127.0.0.1:6379> GETRANGE k1 0 -1
"abcd1234"
127.0.0.1:6379> GETRANGE k1 0 3
"abcd"
127.0.0.1:6379> SETRANGE k1 1 xxyy
(integer) 8
127.0.0.1:6379> get k1
"axxyy234"
数值增减:

一定是数字才能加减!!!

命令含义
INCR KEY数字递增
INCRBY key increment增加指定的整数
DECR key数字递减
DECRBY key decrement减去指定的整数
127.0.0.1:6379> set k1 1
OK
127.0.0.1:6379> INCR k1
(integer) 2
127.0.0.1:6379> get k1
"2"
127.0.0.1:6379> incr k1
(integer) 3
127.0.0.1:6379> get k1
"3"
127.0.0.1:6379> INCRBY k1 10
(integer) 13
127.0.0.1:6379> get k1
"13"
127.0.0.1:6379> DECR k1
(integer) 12
127.0.0.1:6379> get k1
"12"
127.0.0.1:6379> DECR k1
(integer) 11
127.0.0.1:6379> get k1
"11"
127.0.0.1:6379> DECRBY k1 10
(integer) 1
127.0.0.1:6379> get k1
"1"
127.0.0.1:6379> 
获取字符串长度和内容追加:

STRLEN key / APPEND key value

127.0.0.1:6379> set k1 abcd
OK
127.0.0.1:6379> STRLEN k1
(integer) 4
127.0.0.1:6379> APPEND k1 xxxx
(integer) 8
127.0.0.1:6379> get k1
"abcdxxxx"
127.0.0.1:6379> 
分布式锁:

setnx(set if not exist) key value

setex(set with expire)键单位:秒

127.0.0.1:6379> SETEX k1 10 v11
OK
127.0.0.1:6379> ttl k1
(integer) 6
127.0.0.1:6379> setnx k1 v11
(integer) 0
127.0.0.1:6379> 
getset:(先get再set)

先get出来旧值 再set设置get新值

127.0.0.1:6379> GETSET k1 haha
"v11"
127.0.0.1:6379> get k1
"haha"
127.0.0.1:6379> 
应用场景:

例如抖音无限点赞某个视频或者商品,点一下增加一次

是否喜欢的文章

2.redis列表 (List)

List(列表)

Redis列表是简单的字符串列表,,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

它的底层实际上是个双端列表,最多可以包含2^32-1个元素(4294967295,每个列表超过40亿个元素)

主要功能由push/pop等,一般用在栈、队列、消息队列等场景。

left、right都可以插入添加

  • 如果键不存在,创建新的链表;
  • 如果键已存在,新增内容;
  • 如果值全移除,对应的键也就消失了。
案例:
左边添加/右边添加/从左边开始遍历

lpush/rpush/lrange

lpush:进来顺序==出去顺序逆序

rpush:进来顺序==出去顺序

127.0.0.1:6379> LPUSH list1 1 2 3 4 5
(integer) 5
127.0.0.1:6379> RPUSH list2 11 22 33 44 55
(integer) 5
127.0.0.1:6379> LRANGE list1 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "127.0.0.1:6379> LRANGE list2 0 -1
1) "11"
2) "22"
3) "33"
4) "44"
5) "55"

lpop/rpop

127.0.0.1:6379> LPOP list1
"5"
127.0.0.1:6379> RPOP list1
"1"
127.0.0.1:6379> LRANGE list1 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:6379> 
按照索引下标获得元素(从上到下)

lindex

127.0.0.1:6379> LINDEX list2 0
"11"
127.0.0.1:6379> LINDEX list2 5
(nil)
127.0.0.1:6379> LINDEX list2 4
"55"
127.0.0.1:6379> 
获取列表中元素个数
127.0.0.1:6379> llen list2
(integer) 5
删除N个值等于v1的元素

lrem key

127.0.0.1:6379> LPUSH list3 v1 v1 v1 v2 v2 v3 v3 v3
(integer) 8
127.0.0.1:6379> LREM list3 2 v1
(integer) 2
127.0.0.1:6379> LRANGE list3 0 -1
1) "v3"
2) "v3"
3) "v3"
4) "v2"
5) "v2"
6) "v1"
127.0.0.1:6379> 
截取指定范围的值后重新赋值给key

ltrim key 全闭区间(类似substring)

127.0.0.1:6379> LRANGE list3 0 -1
1) "v3"
2) "v3"
3) "v3"
4) "v2"
5) "v2"
6) "v1"
127.0.0.1:6379> LTRIM list3 0 3
OK
127.0.0.1:6379> LRANGE list3 0 -1
1) "v3"
2) "v3"
3) "v3"
4) "v2"
127.0.0.1:6379> 
源列表 目的列表

rpoplpush

移除列表最后一个元素,并将该元素添加到另一个列表返回

源列表:rpop

目的列表:lpush

127.0.0.1:6379> LRANGE list1 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:6379> LRANGE list2 0 -1
1) "11"
2) "22"
3) "33"
4) "44"
5) "55"
127.0.0.1:6379> RPOPLPUSH list1 list2
"2"
127.0.0.1:6379> LRANGE list1 0 -1
1) "4"
2) "3"
127.0.0.1:6379> LRANGE list2 0 -1
1) "2"
2) "11"
3) "22"
4) "33"
5) "44"
6) "55"
127.0.0.1:6379> 
给下标为index重新赋值

lset key index value

127.0.0.1:6379> LRANGE list2 0 -1
1) "2"
2) "11"
3) "22"
4) "33"
5) "44"
6) "55"
127.0.0.1:6379> LSET list2 0 00
OK
127.0.0.1:6379> LRANGE list2 0 -1
1) "00"
2) "11"
3) "22"
4) "33"
5) "44"
6) "55"
127.0.0.1:6379> 
已经有值插入的新值

linsert key before/after

127.0.0.1:6379> LINSERT list2 before 55 new
(integer) 7
127.0.0.1:6379> LRANGE list2 0 -1
1) "00"
2) "11"
3) "22"
4) "33"
5) "44"
6) "new"
7) "55"
127.0.0.1:6379> 
应用场景:

公众号订阅消息

3.redis哈希表 (Hash)

Redis hash是一个String类型的field(字段)和value(值)的映射表,hash特别适合用于存储对象。

Redis中每个hash可以存储2^32-1键值对(40多亿)

KV模式不变,但是V是一个键值对。(即:Map< String >,Map<Object,Object>)

案例:
hset/hget/hmest/hmget/hgetall/hdel
127.0.0.1:6379> HSET user:001 id 11 name z3 age 25
(integer) 3
127.0.0.1:6379> hget user:001 id
"11"
127.0.0.1:6379> hget user:001 name
"z3"<!----------------->127.0.0.1:6379> hmset user:001 id 12 name L4 age 26
OK
127.0.0.1:6379> HMGET user:001 id name age
1) "12"
2) "L4"
3) "26"<!----------------->127.0.0.1:6379> HGETALL user:001
1) "id"
2) "12"
3) "name"
4) "L4"
5) "age"
6) "26"<!----------------->127.0.0.1:6379> hdel user:001 age
(integer) 1
127.0.0.1:6379> HGETALL user:001
1) "id"
2) "12"
3) "name"
4) "L4"
获取某个key的全部数量

hlen

127.0.0.1:6379> HLEN user:001
(integer) 2
127.0.0.1:6379> HGETALL user:001
1) "id"
2) "12"
3) "name"
4) "L4"
127.0.0.1:6379> 
在key里面的某个值的key

hexists key(简单说就是判断这个field存不存在)

127.0.0.1:6379> HEXISTS user:001 name
(integer) 1
127.0.0.1:6379> HEXISTS user:001 sex
(integer) 0
hkeys/hvals

hkeys:获取所有的key

hvals:获取所有的value

127.0.0.1:6379> HKEYS user:001
1) "id"
2) "name"
127.0.0.1:6379> HVALS user:001
1) "12"
2) "L4"
127.0.0.1:6379> 
hincrby/hincrfloat

hincrby:整数增加

hincrfloat:浮点数增加

127.0.0.1:6379> HSET user:001 age 25 score 99.5
(integer) 2
127.0.0.1:6379> HGETALL user:001
1) "id"
2) "12"
3) "name"
4) "L4"
5) "age"
6) "25"
7) "score"
8) "99.5"
127.0.0.1:6379> HINCRBY user:001 age 2
(integer) 27
127.0.0.1:6379> HGETALL user:001
1) "id"
2) "12"
3) "name"
4) "L4"
5) "age"
6) "27"
7) "score"
8) "99.5"
127.0.0.1:6379> HINCRBYFLOAT user:001 score 100
"199.5"
127.0.0.1:6379> HGETALL user:001
1) "id"
2) "12"
3) "name"
4) "L4"
5) "age"
6) "27"
7) "score"
8) "199.5"
127.0.0.1:6379> 
hsetnx

不存在则赋值,存在了则无效。

127.0.0.1:6379> HSETNX user:001 email 128@qq.com
(integer) 1
127.0.0.1:6379> HSETNX user:001 email 12@qq
(integer) 0
127.0.0.1:6379> 
应用场景:

迷你的电商系统会采用

4.redis集合 (Set)

Set(集合)

Redis的Set是String类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据,集合对象的编码可以是intset或者hashtable

Redis中Set集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

集合中最大的成员数为最多可以包含2^32-1(4294967295,每个集合可存储40亿个成员)

案例:
添加元素

sadd set member

127.0.0.1:6379> SADD set1 1 1 1 2 2 2 3 4 5
(integer) 5
遍历集合

smembers set

127.0.0.1:6379> SMEMBERS set1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
判断元素是否在集合中

sismember set member

127.0.0.1:6379> SISMEMBER set1 x
(integer) 0
127.0.0.1:6379> SISMEMBER set1 2
(integer) 1
127.0.0.1:6379> 
删除元素

srem set member

127.0.0.1:6379> SREM set1 1
(integer) 1
127.0.0.1:6379> SMEMBERS set1
1) "2"
2) "3"
3) "4"
4) "5"
127.0.0.1:6379> 
获取元素个数

scard set

127.0.0.1:6379> SMEMBERS set1
1) "2"
2) "3"
3) "4"
4) "5"
127.0.0.1:6379> SCARD set1
(integer) 4
从集合中随机展现设置的数字个数元素,元素不删除

srandmember key[x]

从集合中随机选取x个元素

127.0.0.1:6379> SRANDMEMBER set1 2
1) "2"
2) "3"
127.0.0.1:6379> SRANDMEMBER set1 2
1) "5"
2) "4"
127.0.0.1:6379> 
从集合中随机弹出一个元素,并且删除

spop key[数字]

127.0.0.1:6379> SMEMBERS set1
1) "2"
2) "3"
3) "4"
4) "5"
127.0.0.1:6379> spop set1 2
1) "4"
2) "3"
127.0.0.1:6379> spop set1 1
1) "5"
127.0.0.1:6379> SMEMBERS set1
1) "2"
127.0.0.1:6379> 
在key1里已存在的某个值,将key1存在的值迁移给key2

smove key1 key2

就是把key1的某个元素给key2。此时key1删除这个元素,key2添加这个元素

127.0.0.1:6379> sadd set2 a b c
(integer) 3
127.0.0.1:6379> SMOVE set1 set2 2
(integer) 1
127.0.0.1:6379> SMEMBERS set1 
(empty array)
127.0.0.1:6379> SMEMBERS set2
1) "b"
2) "2"
3) "c"
4) "a"
127.0.0.1:6379> 
集合运算(交、并、差)

Tep1:A-B (属于A但不属于B的集合)

sdiff key[key…]

127.0.0.1:6379> SADD A a b c 1 2
(integer) 5
127.0.0.1:6379> SADD B 1 2 3 a x
(integer) 5
127.0.0.1:6379> SDIFF A B
1) "b"
2) "c"
127.0.0.1:6379> SDIFF B A
1) "x"
2) "3"
127.0.0.1:6379> 

Tep2:A∪B

sunion key[key…]

127.0.0.1:6379> SUNION A B
1) "x"
2) "b"
3) "1"
4) "2"
5) "3"
6) "a"
7) "c"
127.0.0.1:6379> 

Tep3:A∩B

sinter key[key…]

127.0.0.1:6379> SINTER A B
1) "1"
2) "2"
3) "a"
127.0.0.1:6379> 

sintercard x key[key…]

x:集合个数 假设两个A和B

不返回结果,只返回交集的个数

127.0.0.1:6379> SINTERCARD 2 A B
(integer) 3
127.0.0.1:6379> 
应用场景:

1.微信抽奖小程序

2.朋友圈点赞查看同赞朋友

3.QQ推送你可能认识的人

5.redis有序集合 (ZSet/Sorted set)

zset(sorted set:有序集合)

Redis zset和set一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的对象,redis正是通过分数来为集合中的成员进行从小到大的排序。

zset的成员是唯一的,但分数(score)却可以重复。

zset是通过哈希表实现的,所以添加,删除,查找的复杂度是O(1)。集合中最大成员数为2^32-1

案例:
向有序集合添加一个元素和该元素的分数
127.0.0.1:6379> ZADD zset1 60 v1 70 v2 80 v3 90 v4 100 v5
(integer) 5
获取元素(从小到大)
127.0.0.1:6379> ZRANGE zset1 0 -1
1) "v1"
2) "v2"
3) "v3"
4) "v4"
5) "v5"127.0.0.1:6379> ZRANGE zset1 0 -1 withscores1) "v1"2) "60"3) "v2"4) "70"5) "v3"6) "80"7) "v4"8) "90"9) "v5"
10) "100"
获取元素(从大到小)
127.0.0.1:6379> ZREVRANGE zset1 0 -1
1) "v5"
2) "v4"
3) "v3"
4) "v2"
5) "v1"
127.0.0.1:6379> ZREVRANGE zset1 0 -1 withscores1) "v5"2) "100"3) "v4"4) "90"5) "v3"6) "80"7) "v2"8) "70"9) "v1"
10) "60"
按照分数范围取值
127.0.0.1:6379> ZRANGEBYSCORE zset1 60 90
1) "v1"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379> 
获取元素分数
127.0.0.1:6379> ZSCORE zset1 v1
"60"
127.0.0.1:6379> 
获取元素个数
127.0.0.1:6379> ZCARD zset1
(integer) 5
127.0.0.1:6379> 
删除元素
127.0.0.1:6379> ZREM zset1 v5
(integer) 1
127.0.0.1:6379> ZRANGE zset1 0 -1
1) "v1"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379> 
获取指定分数范围内的元素个数
127.0.0.1:6379> ZRANGE zset1 0 -1 withscores
1) "v1"
2) "60"
3) "v2"
4) "70"
5) "v3"
6) "80"
7) "v4"
8) "90"
127.0.0.1:6379> ZCOUNT zset1 60 80
(integer) 3
127.0.0.1:6379> ZCOUNT zset1 70 100
(integer) 3
127.0.0.1:6379> 
获取元素下标(顺序)
127.0.0.1:6379> ZRANGE zset1 0 -1
1) "v1"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379> ZRANK zset1 v2
(integer) 1
获取元素下标(逆序)
127.0.0.1:6379> ZREVRANGE zset1 0 -1
1) "v4"
2) "v3"
3) "v2"
4) "v1"
127.0.0.1:6379> ZREVRANK zset1 v2
(integer) 2
应用场景:

根据商品销售堆商品进行排序显示

6.redis地理空间 (GEO)

Redis GEO主要用于存储地理位置信息,并对存储的信息进行操作,包括

添加地理位置的坐标

获取地理位置的坐标

计算两个位置之间的距离

根据用户给定的经纬度坐标来获取指定范围内的地理位置集合

7.redis基数统计 (HyperLogLog)

HyperLogLog是用来做基数统计的算法,HyperLogLog的优点是,在输入元素的数量或者体积非常大时,计算基数所需的空间总是固定且是很小的。

在Redis里面,每个HyperLogLog键只需要花费12KB内存,就可以计算接近2^64个不同元素的基数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。

但是,因为HyperLogLog只会根据输入元素来计算基数,而不会存储输入元素本身,所以HyperLogLog不能像集合那样,返回输入的各个元素。

8.redis位图 (bitmap)

一个字节(一个byte)=8位

00101001

上面由许许多多的小格子组成,每一个格子里面只能放1或者0,用它来判断Y/N状态,简单来说就是每一个小格子就是一个个bit

由0和1状态表现的二进制位的bit数组

9.redis位域 (bitfield)

通过bitfield命令可以一次性操作多个比特位域(指的是连续的多个比特位),它会执行一系列操作并返回一个响应数组,这个数组中的元素对应参数列表中的相应操作的执行结果。

说白了就是通过bitfield命令我们可以一次性对多个比特位域进行操作。

10.redis流 (Stream)

Redis Stream 是Redis 5.0版本新增加的数据结构。

Redis Stream主要用于消息队列(MQ,Message Queue),Redis本身是有一个Redis发布订阅(pub/sub)来实现消息队列的功能(它想干掉Rabbit MQ和kafka。 但是专业的事情还是交给专业的人做),但它有个简单来说发布订阅(pub/sub)可以分发消息,但无法记录历史消息。

而Redis Stream提供了消息的持久化和主备复制功能,可以让任何客户端访问任何时刻的数据,并且能记住每一个客户端的访问位置,还能保证消息不丢失。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/238851.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

『番外篇五』SwiftUI 进阶之如何动态获取任意视图的 tag 和 id 值

概览 在某些场景下,我们需要用代码动态去探查 SwiftUI 视图的信息。比如任意视图的 id 或 tag 值: 如上图所示:我们通过动态探查技术在运行时将 SwiftUI 特定视图的 tag 和 id 值显示在了屏幕上。 这是如何做到的呢? 在本篇博文,您将学到如下内容: 概览1. “如意如意,…

手敲MyBatis(十三章)-返回Insert操作自增索引值

1.目的 这一章的目的主要是插入语句以后返回插入记录的id&#xff0c;因为插入语句可分为要返回记录id&#xff0c;不要返回记录id的以及不同数据源类型执行的时机也不同&#xff08;如&#xff1a;oracle不支持主键&#xff0c;需要先插入序列再增加&#xff0c;Mysql支持主键…

SQL指南:掌握日期函数来查询和管理数据

文章目录 1. 引言2. 建立数据库表2.1 建表语句2.2 数据插入 查询案例3.1 查询当前日期的订单3.2 查询过去一周内的订单3.3 查询明天的日期3.4 查询今年的订单3.5 查询特定月份的订单 总结 1. 引言 在数据库管理中&#xff0c;处理日期和时间是一项基本但重要的任务。本指南将通…

设计模式之模板方法模式,通俗易懂快速理解,以及模板方法模式的使用场景

文章目录 前言一、使用场景通常二、通过一个故事来更好地理解它当谈到模板方法模式时&#xff0c;我们可以通过一个故事来更好地理解它。以下是对应于故事的代码示例&#xff1a; 前言 当谈到模板方法模式时&#xff0c;在面向对象的编程中&#xff0c;它是一种行为设计模式。…

数智金融技术峰会|数新网络受邀分享《金融信创湖仓一体数据平台架构实践》,敬请期待

12月23日&#xff0c;数新网络参加DataFunSummit 2023&#xff1a;数智金融技术峰会。会上&#xff0c;数新CTO原攀峰将为大家带来《金融信创湖仓一体数据平台架构实践》 主题分享。 本次峰会由DataFun联合火山引擎、蓝驰等知名企业举办&#xff0c;将共同为大家带来一场数智金…

玩转Instagram Shop只需要学会这些功能

Instagram Shop作为Instagram下属的电商购物平台。用户可以通过浏览Instagram上的推荐产品和品牌&#xff0c;在无需离开应用的情况下了解并购买新的商品。对于经常使用Instagram的用户来说是个很便捷的购物渠道。面对这个新渠道&#xff0c;我们又该如何玩转它呢。这篇文章就会…

【沐风老师】3dMax篮球建模方法详解

3dMax足球、排球和篮球建模系列之&#xff1a;篮球建模。对于足球和排球建模&#xff0c;思路是从一个基础模型开始&#xff0c;利用这个基础模型与最终的足球&#xff08;或排球&#xff09;模型的某些相似之处&#xff0c;经过修改编辑&#xff0c;最终完成目标模型的建模。但…

ansible的playbook

1、playbook的组成部分 &#xff08;1&#xff09;task任务&#xff1a;在目标主机上执行的操作&#xff0c;使用模块定义这些操作&#xff0c;每个任务都是一个模块的调用 &#xff08;2&#xff09;variables变量&#xff1a;存储和传递数据&#xff08;变量可以自定义&…

Nginx conf文件配置

正常地址配置&#xff08;vue打包dist项目&#xff09; server {listen 端口号;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root 绝对路径地址;index index.html index.htm;}#error_page 404 /404.h…

Java可变参数(学习推荐版,通俗易懂)

定义 可变参数本质还是一个数组 示例代码 注意事项 1.形参列表中&#xff0c;可变参数只能有一个 2.可变参数必须放在形参列表的最后面 注意是最后面。 name也可以为int类型

【C#】TimeSpan

文章目录 概述属性时间计算拓展来源 概述 TimeSpan结构&#xff1a;表示一个时间间隔。 它含有以下四个构造函数&#xff1a; TimeSpan(Int64)将 TimeSpan结构的新实例初始化为指定的刻度数。&#xff08;DateTime.Tick:是计算机的一个计时周期&#xff0c;单位是一百纳秒&…

3. 行为模式 - 迭代器模式

亦称&#xff1a; Iterator 意图 迭代器模式是一种行为设计模式&#xff0c; 让你能在不暴露集合底层表现形式 &#xff08;列表、 栈和树等&#xff09; 的情况下遍历集合中所有的元素。 问题 集合是编程中最常使用的数据类型之一。 尽管如此&#xff0c; 集合只是一组对象的…

数据结构(八):图介绍及面试常考算法

一、图介绍 1、定义 图由结点的有穷集合V和边的集合E组成。其中&#xff0c;结点也称为顶点。一对结点&#xff08;x&#xff0c; y&#xff09;称为边&#xff08;edge&#xff09;&#xff0c;表示顶点x连接到顶点y。边可以包含权重/成本&#xff0c;显示从顶点x到y所需的成…

【python将txt转16进制】

python将txt转16进制 直接上代码 import time print("begin")#读取的txt文件 infile open("xxx.txt","r"); # outfile open("xxx.hex","wb");#开始读文件 a infile.read(1); _combine ""; i0; while a ! \n:i…

深入解析Python装饰器及*args, **kwargs的妙用

深入解析Python装饰器及*args, **kwargs的妙用 简介&#xff1a; ​ 装饰器&#xff08;Decorator&#xff09;是 Python 中一种强大的语法特性&#xff0c;它允许在不修改原始函数代码的情况下&#xff0c;动态地扩展函数的功能。装饰器是函数或类&#xff0c;用于包装其他函…

GO设计模式——17、解释器模式(行为型)

目录 解释器模式&#xff08;Interpreter Pattern&#xff09; 解释器模式的核心角色&#xff1a; 优缺点 代码实现 解释器模式&#xff08;Interpreter Pattern&#xff09; 解释器模式&#xff08;Interpreter Pattern&#xff09;提供了评估语言的语法或表达式的方式&am…

SQL server 数据库 SQL语句高级用法

1、表的高级查询 use student select * from stuinfo1 -- 使用 in 的子查询 select * from stuinfo where stu_age in ( select stu_age from stuinfo where cla_id 12345 ) select * from stuinfo where stu_age in ( 19 , 20 , 21 , 25 , 23 , 1…

云上荆楚丨云轴科技ZStack成功实践精选(湖北)

湖北自古以来有九省通衢的美称&#xff0c;地处长江中游&#xff0c;富有荆楚之美誉&#xff0c;灵秀之蕴意。2022年湖北数字经济强省三年行动计划正式印发&#xff0c;计划到“十四五”末&#xff0c;数字经济核心产业增加值力争达到7000亿元&#xff0c;占GDP的比重超过12%。…

《每天一分钟学习C语言·七》指针、字节对齐等

1、 对于二维数组如a[3][4]可以当做有三个元素的一维数组&#xff0c;每个元素包含四个小元素。 2、 printf(“%-5d”, i); //负号表示左对齐&#xff0c;5d表示空五个光标的位置 3、 栈&#xff1a;先进后出&#xff0c;堆&#xff1a;先进先出 4、 &#xff08;1&#xff…

【HTML5】HTML5 语音合成

一、前言 前一段时间在项目中需要用到播报文字语音。找到了 HTML 5 有这样的功能。 现在有时间进行总结下。 二、SpeechSynthesis SpeechSynthesis 接口是语音服务的控制接口。它可以用于获取设备上关于可用的合成声音的信息&#xff0c; 开始、暂停语音&#xff0c;或者别…