key

Redis 通配符查找及批量删除key

蹲街弑〆低调 提交于 2020-04-07 08:45:31
1. DEL 直接加键名称 DEL key1 key2 key3 127.0.0.1:6379> DEL site_msg_99973 false site_msg_99974 false site_msg_99979false 2. 批量删除key 可用keys ‘str*’ 列出要删除的key,接linux管道删除(linux命令行执行) 根据通配符查看待删除的key redis-cli KEYS "site_msg_999*” 接linux管道删除之 redis-cli KEYS "site_msg_999*"|xargs redis-cli DEL 3.更好的方式 keys * 命令在数据量很大的情况下,直接在redis cli中执行会严重影响服务器性能,更好的方式是在lua脚本中执行 eval方式执行redis lua lua方式通配符查找 redis-cli eval "return redis.call('keys','site_msg_888*')” 0 lua方式通配符删除 eval "return redis.call('del',unpack(redis.call('keys',ARGV[1])))" 0 ‘site_msg_888*’ 来源: oschina 链接: https://my.oschina.net/u/144160/blog/738999

python第六天

谁都会走 提交于 2020-04-07 05:34:34
一、内置函数 内置函数 abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id() object() sorted() ascii() enumerate() input() oct() staticmethod() bin() eval() int() open() str() bool() exec() isinstance() ord() sum() bytearray() filter() issubclass() pow() super() bytes() float() iter() print() tuple() callable() format() len() property() type() chr() frozenset() list() range() vars() classmethod() getattr() locals() repr() zip() compile() globals() map() reversed() __import__() complex() hasattr() max() round() delattr() hash() memoryview() set() 1、简单函数 print(eval('1+2+3

使用 Istio 进行 JWT 身份验证与来源限流

∥☆過路亽.° 提交于 2020-04-07 00:01:21
Istio End User Authentication Istio 支持使用 JWT 对终端用户进行身份验证,支持多种 JWT 签名算法,主流的有 RS256/ES256。(也许也会有人用 HS256 做分布式 JWT 认证。。不过这显然是非常危险的) JWK 说明 JWK 全称是 Json Web Key,它描述了一个加密密钥(公钥或私钥)的各项属性,包括密钥的值。 Istio 使用它进行 JWT 验证,因此在使用 RSA 签名算法时,JWK 里提供的应该是用于验证的公钥。 一个 RSA 公钥的数据结构如下: { "alg": "RS256", # 算法「可选参数」 "kty": "RSA", # 密钥类型 "use": "sig", # 被用于签名「可选参数」 "kid": "NjVBRjY5MDlCMUIwNzU4RTA2QzZFMDQ4QzQ2MDAyQjVDNjk1RTM2Qg", # key id,在有多个 jwk 时(如 jwks 中)被用于区分各 jwk "n": "yeNlzlub94YgerT030codqEztjfU_S6X4DbDA_iVKkjAWtYfPHDzz_sPCT1Axz6isZdf3lHpq_gYX4Sz-cbe4rjmigxUxr

el-table 的key属性

时光怂恿深爱的人放手 提交于 2020-04-06 20:05:15
在阅读[ vue-element-admin ]代码时候,发现有以下写法: <el-table :key='tableKey' :data="list" v-loading="listLoading" element-loading-text="给我一点时间" border fit highlight-current-row style="width: 100%"> 其中key这个属性怎么都没查到. 最后,带issue里面查到了说明 https://github.com/PanJiaChen/vue-element-admin/issues/656 . 原来这个key属性是vue自带特殊属性,主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes。如果不更新这个key的话,显示隐藏列的时候,部分DOM不会重新渲染,导致table变化时候没有动画过度,显得很生硬. 参考vue说明: https://cn.vuejs.org/v2/api/#key 心得:于细微之处见真章. 来源: oschina 链接: https://my.oschina.net/u/133911/blog/1824406

windows 下生成 ssh key

ⅰ亾dé卋堺 提交于 2020-04-06 19:49:13
这个问题是学习git 的时候遇到的。 先介绍一下什么是ssh key 你有github 账号,需要往上面推送文件,他需要识别推送文件的这个人是你,也就用到了ssh key 了。 本地安装git 生成ssh key 的时候,id_rsa.pub 是公钥文件,任何人都可以看,就是把它粘贴到github上。 github 添加ssh key 的路径是 setting ---> SSH key and GPK key 好了,下面说一下具体的操作步骤。 1 查看本地是否已有 SSH keys 查看当前用户目录下是否有 .ssh 文件夹,如果有就跳过第 2 和 3 步。 $ ls -la ~/.ssh total 32 drwxr-xr-x 1 Administrator 197121 0 八月 27 15:29 ./ drwxr-xr-x 1 Administrator 197121 0 二月 10 16:44 ../ -rw-r--r-- 1 Administrator 197121 3381 八月 27 15:21 id_rsa -rw-r--r-- 1 Administrator 197121 742 八月 27 15:21 id_rsa.pub -rw-r--r-- 1 Administrator 197121 1593 九月 5 17:05 known_hosts 2 生成 SSH

马哥博客作业第三周

混江龙づ霸主 提交于 2020-04-06 18:10:19
Ipython使用 ipython是增强的CPython,尤其是交互式体验。该项目还提供了jupyter notebook,之后分离。 帮助 ? Ipython概述和简介 help(name) 查询指定名称的帮助 obj? 列出对象的详细帮助 obj?? 如果可以,则列出更加详细的帮助 特殊变量 ipython内部提供了非常多的内建变量,或许能用到的如下 _表示第一次输出 __表示倒数第二次输出 ___表示倒数第三次输出 _dh目录历史 _oh输出历史 shell命令 使用 !command 执行shell命令 魔术方法 IPython内置的特殊方法,使用%百分号开头 %开头是line magic %%开头是cell magic,notebook的cell 集合 集合,简称集。由任何个元素构成的集体。高级语言都实现了这个非常重要的数据结构类型。在python中,它是 可变的、无序的、不重复 的元素的集合 初始化 元素性质 去重:在集合中,所有元素必须相异 无序:因为无序,所以 不可索引 可哈希:python集合中的元素必须可以hash,即元素都可以使用内建函数hash ( 目前学过的不可hash类型:list、set、byte array ) 可迭代:set中虽然元素不一样,但元素都可以迭代出来 增加 add(elem) 返回值None #注意只能一次增加一个元素,如果元素存在

[ Leetcode ] No.460 LFU缓存

家住魔仙堡 提交于 2020-04-06 12:20:41
题目: 请你为 最不经常使用(LFU)缓存算法设计并实现数据结构。它应该支持以下操作:get 和 put。 get(key) - 如果键存在于缓存中,则获取键的值(总是正数),否则返回 -1。 put(key, value) - 如果键不存在,请设置或插入值。当缓存达到其容量时,则应该在插入新项之前,使最不经常使用的项无效。在此问题中,当存在平局(即两个或更多个键具有相同使用频率)时,应该去除 最近 最少使用的键。 「项的使用次数」就是自插入该项以来对其调用 get 和 put 函数的次数之和。使用次数会在对应项被移除后置为 0 。 题解: 这题其实不会做... 先记录 有机会重新写过 struct Node { int key, val, fre; Node(int x, int y, int z): key(x), val(y), fre(z) {} }; class LFUCache { public: int cap, minfreq; unordered_map<int, list<Node>::iterator> stuff; unordered_map<int, list<Node>> fre_table; LFUCache(int capacity) { cap = capacity; minfreq = 0; stuff.clear(); fre_table

Proxy代理

一笑奈何 提交于 2020-04-06 05:01:46
Proxy对象 在一个系统中,总要存储一些数据,对于这些数据,可能有一些是希望我们访问的,但是总有一些是中重要的,不希望我们访问的,希望保护起来,因此ES6新增了代理,在目标对象前架设个“拦截“层,外界对该对象的访问必须通过这层拦截,我们可以对外界的访问进行过滤和改写。 注意:Proxy修改了某些操作的默认行为,等同于在语言层做出修改,所以也属于”元编程“,即对语言进行编程。 语法: let proxy = new Proxy(target,handler) target 表示被代理的对象 handler 表示操作被代理的对象 注意: [[]] 为引擎内部属性或方法,外部不能获取 let star = { name: '尼古拉斯赵四', girlFriend: '赵丽颖', age: 40 } // 代理对象 let proxy = new Proxy(star, { // 取值方法 get(target, key, receiver) { // 如果是重要的数据,不要访问 if (key === 'girlFriend') { throw new Error('不能访问girlFriend') } if (key === 'age') { return 0 } // target 代表 star, key 代表属性名称, receiver代表proxy,

php 邮箱验证原理

☆樱花仙子☆ 提交于 2020-04-06 00:18:23
1、数据库必须要有的字段,email(会员邮箱地址)key(随机激活码,可以使用md5(rand(10000,99999)这样极简单的)active(bool类型,默认为0,激活后变成1)还可以有其它信息之类的字段 2、注册的时候插入数据库里的有:填写的邮箱、生成一个随机的字符串放在key里、active默认为0 3、插入数据后发送邮件,你可以搜索phpmailer,比较简单,发送的类容是一条链接,格式如下: http://www.xxxxxx.com/active.php?username= 用户名&active=激活码 4、你建一个active.php的文件,内容就是查询该用户的资料,如果username与active正好是这条链接的内容,那么就把active设为1,并清空key字段。之所以把key更新为空,是为了防止再次激活。 邮件发送使用mail smtp方式进行发送、 来源: https://www.cnblogs.com/linksgo2011/archive/2013/04/23/3037429.html

Vue 怎么用 vm.$set() 解决对象新增属性不能响应的问题 ?

谁说我不能喝 提交于 2020-04-04 10:46:58
受现代 JavaScript 的限制 ,Vue 无法检测到对象属性的添加或删除。 由于 Vue 会在初始化实例时对属性执行 getter/setter 转化,所以属性必须在 data 对象上存在才能让 Vue 将它转换为响应式 的。 但是 Vue 提供了 Vue.set (object, propertyName, value) / vm.$set (object, propertyName, value) 来实现为对象添加响应式属性,那框架本身是如何实现的呢? 我们查看对应的 Vue 源码: vue/src/core/instance/index.js export function set (target: Array<any> | Object, key: any, val: any): any { // target 为数组 if (Array.isArray(target) && isValidArrayIndex(key)) { // 修改数组的长度, 避免索引>数组长度导致splcie()执行有误 target.length = Math.max(target.length, key) // 利用数组的splice变异方法触发响应式 target.splice(key, 1, val) return val } // key 已经存在,直接修改属性值 if (key