keys

Python与Redis交互

淺唱寂寞╮ 提交于 2020-02-25 16:01:22
缓存系统 mongodb 直接持久化,宕机数据不丢失 redis 半持久化,手动控制,NoSQL数据库 memcache 不能持久化,存储在内存中,轻量级缓存 radis 单线程应用,通过异步实现多访存 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多, 包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。 这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。 在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。 区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis的安装 1 wget http://download.redis.io/releases/redis-3.0.6.tar.gz 2 tar xzf redis-3.0.6.tar.gz 3 cd redis-3.0.6 4 make 启动Radis 1 src/redis-server 客户端操作 1 src/redis-cli 2 redis> set name cq

vue报错之Duplicate keys detected: '0'. This may cause an update error.

一个人想着一个人 提交于 2020-02-24 04:34:13
今天搞动态添加表单浏览器一直出现 百度一下发现原来是我在页面写了两个v-for循环,绑定了一样的key值 <div class="info" v-for="(item, index) in itemList" :key="index"></div> <div class="info" v-for="(item, index) in itemList" :key="index"></div> 可以修改其中一个的key值。 <div class="info" v-for="(item, index) in itemList" :key="'info-'+ index"></div> <div class="info1" v-for="(item, index) in itemList" :key="'info1-'+ index"></div> 本文案例为复制以下链接内容 复制链接 来源: CSDN 作者: PC_136 链接: https://blog.csdn.net/PC_136/article/details/104467026

散列表简介

好久不见. 提交于 2020-02-23 10:11:58
散列表 也叫 哈希表 ,是一种根据关键字直接访问内存存储位置的数据结构,它是用一个数组实现的无序符号表.将键作为数组的索引而数组中键i处存储的就是它对应的值,这样就可以实现快速访问任意键的值.散列表是算法在时间和空间上做出权衡的经典例子. 散列表的查找算法分为 两步 : 1.用散列函数将键转化为数组索引,可能会出现多个键散列到相同的索引值上面,这是就要进行第二步了. 2.处理碰撞冲突(拉链法和线性探测法). 散列函数的概念 散列函数应该易于计算并且能够均匀分布所有的键, 即对于任意键, 0到M-1之间每个整数都有相同的可能性与之对应(与键无关), 严格地说每种类型的键都应该有对应的散列函数. 正整数 : 一般用 除留余数法 ,选择素数为M的数组,对于任意正整数k,计算k除以M的余数.可以有效的散布在0-M-1之间.如果M不是素数,可能不会均匀散布. 浮点数 :java中将键表示为 二进制 然后使用除留取余法 . 字符串 :java中charAt()返回一个非负16位整数,只要R足够小,不造成溢出,那么结果就会落在0至M-1之间 int hash = 0; for (int i = 0; i < s.length(); i++) hash = (R * hash + s.charAt(i)) % M; 组合键 :如果键中含有多个整型变量, 我们可以和String类型一样将它们混合起来

配置SSH免密登录及常见问题

风格不统一 提交于 2020-02-21 19:11:29
配置免密登录 客户端执行命令$ ssh-keygen -t rsa 回车三次后会在 ~/.ssh/ 下生成两个文件:id_rsa 和 id_rsa.pub,这两个文件是成对出现的 取出id_rsa.pub中内容,复制到服务器端的~/.ssh/authorized_keys cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 验证即可。 常见问题 免密不生效的问题: 检查AuthorizedKeysFile配置是否启用authorized_keys $ cat /etc/ssh/sshd_config |egrep AuthorizedKeysFile 修改/etc/ssh/sshd_config $ sudo vi /etc/ssh/sshd_config 取消行注释 AuthorizedKeysFile .ssh/authorized_keys 查看系统安全日志,定位问题 sudo cat /var/log/secure 查看免密登录报错信息。 找到问题:Authentication refused: bad ownership or modes for directory /home/hupz 后面的目录代表权限不匹配 SSH进行认证的过程中除了对用户目录有权限要求外,对 .ssh 文件夹和 authorized_keys

RedissonClient获取锁源码解析

安稳与你 提交于 2020-02-20 10:17:24
代码示例: public static boolean acquire(RedissonClient redisson, String lockKey, Long waitTime, Long leaseTime) {     // 实例化锁对象(此时未请求redis) RLock lock = redisson.getLock(lockKey); boolean lockResult; try { lock.lock();       // 加锁 lockResult = lock.tryLock(waitTime, leaseTime, TimeUnit.SECONDS); }catch (Exception e){ lockResult = false; } if (lockResult){ log.info("======lock success <"+lockKey+">======"+Thread.currentThread().getName()); }else { log.error("======lock error <"+lockKey+">======"+Thread.currentThread().getName()); } //加锁成功 return lockResult; } 流程图: 源码分析: Redisson实例化 /***************

python练习——第1题

泪湿孤枕 提交于 2020-02-17 14:21:02
题目:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? 代码: #coding=utf-8 import random, string number = 20 # 激活码的数量 length = 12 # 激活码的长度 box = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' # 激活码的组成元素 keys = {} # 用于保存生成的激活码 temp_key = ''.join(random.sample(box, length)) # 生成第一个激活码 k = 0 # 激活码的索引 keys[k] = temp_key while(True): temp_key = ''.join(random.sample(box, length)) for j in list(keys.keys()): # 判断新生成的激活码是否和以前的相同 if keys[j] == temp_key: # 如果相同则重新生成 break elif j == (len(keys) - 1): # 如果新生成的激活码和之前的激活码都不一样,则将新激活码加入keys k += 1 keys[k] = temp_key else: continue if k ==

Linux学习之免秘钥登陆

做~自己de王妃 提交于 2020-02-16 11:49:53
1、公私钥简介与原理 公钥和私钥都属于非对称加密算法的一个实现,这个加密算法的信息交换过程是: (1)持有公钥的一方(甲)在收到持有私钥的一方(乙)的请求时,甲会在自己的公钥列表中查找是否有乙的公钥,如果有则使用一个随机字串使用公钥加密并发送给乙。 (2)乙收到加密的字串使用自己的私钥进行解密,并将解密后的字串发送给甲。 (3)甲接收到乙发送来的字串与自己的字串进行对比,如过通过则验证通过,否则验证失败。 非对称加密算法不能使用相同的密钥进行解密,也就是说公钥加密的只能使用私钥进行解密。 2、使用密钥进行ssh免密登录 ssh使用私钥登录大致步骤就是:主机A(客户端)创建公钥私钥,并将公钥复制到主机B(被登陆机)的指定用户下,然后主机A使用保存私钥的用户登录到主机B对应保存公钥的用户。 (1) 实验环境 两台主机: (1)主机A(客户机):10.246.30.131 (2)主机B(被登陆机):10.246.30.130 (2) 实验开始 在需要免密登陆的主机(主机A)下生成公钥和私钥 1 # ssh-keygen -t rsa ## -t rsa可以省略,默认就是生成rsa类型的密钥 说明: 命令执行后会有提示,输入三次回车即可,执行完成后会在当前用户的.ssh目录下生成两个文件:id_rsa、id_rsa.pub文件,前者是私钥文件,后者是公钥文件

1、键值通用操作

空扰寡人 提交于 2020-02-16 01:25:24
1、键值通用操作 keys pattern:查找当前数据库中所有匹配pattern的键 pattern支持*,?,[]匹配 *:匹配任意(所有)选项 ?:任意一位 []:匹配其中包含的任意一项 127.0 .0 .1 : 6379 > keys * 1 ) "key1" 2 ) "mykey" 3 ) "zs" 4 ) "a" 5 ) "w" 6 ) "k" 7 ) "ss" 127.0 .0 .1 : 6379 > keys ? 1 ) "a" 2 ) "w" 3 ) "k" 127.0 .0 .1 : 6379 > keys [ wak ] 1 ) "a" 2 ) "w" 3 ) "k" randomkey:抽取随机键 127.0 .0 .1 : 6379 > randomkey "key1" 127.0 .0 .1 : 6379 > randomkey "k" 127.0 .0 .1 : 6379 > randomkey "zs" exists key:判断是否存在键key,返回1 或 0 127.0 .0 .1 : 6379 > exists k ( integer ) 1 127.0 .0 .1 : 6379 > exists pp ( integer ) 0 type key:判断键的类型 127.0 .0 .1 : 6379 > type k list del key

Java实现仿win10计算器

给你一囗甜甜゛ 提交于 2020-02-12 12:40:46
文章目录 一、实验目的: 二、实验内容 三、实验原理 四、运行 源代码: 一起学习,共同进步鸭~ 一、实验目的: 1、掌握Java图形用户界面的编程设计方法; 2、掌握异常处理的编程方法。 3、掌握组件的监听和动作响应处理方法。 二、实验内容 实现一个计算器。要求: 1、参照Windows计算器功能,实现加、减、乘、除运算; 2、声明为按钮数组; 3、对0~9数字操作,采用相同的算法; 4、解决除数为零的问题; 5、具有清除一个数字、全部清除、开平方和平方功能。 6、计算结果保留4位小数。 7、界面缩放时,所有组件同步缩放,保持界面整体风格不变。 三、实验原理 首先分析 界面的布局 ,可把界面分成 上下两大部分 上面用一个 面板 来装 文本框 ,下面用一个 面板 来装 计算器的按钮 。 框架默认布局是边框布局(BorderLayout),所以我将文本框所在的面板放在北部,将按钮所在的面板放在计算器的中部,就能达到预期的效果。 按钮 所在面板采用 网格布局(GridLayout) ,能实现当调整界面大小时所有组件 同步缩放 ,保持界面整体风格不变。 为了尽量还原win10的计算器,我 取消了按钮的边框 和 文本框的边框样式 ,以及在 边界 上进行了 颜色,间距 等的设置。(跟win10自带计算器颜色相近的rgb好难找啊,我在网上把颜色比对了好久 (ノ`Д)ノ )。 我

Lua语言模型 与 Redis应用

走远了吗. 提交于 2020-02-12 05:48:08
参考:https://blog.csdn.net/zjf280441589/article/details/52716720 从 2.6版本 起, Redis 开始支持 Lua 脚本 让开发者自己扩展 Redis. 本篇博客主要介绍了 Lua 语言不一样的设计模型(相比于Java/C/C++、JS、PHP), 以及 Redis 对 Lua 的扩展, 最后结合 Lua 与 Redis 实现了一个支持过期时间的分布式锁. 我们希望这篇博客的读者朋友可以在读完这篇文字之后, 体会到 Lua 这门语言不一样的设计哲学 , 以及 更加得心应手的使用/扩展 Redis . 案例-实现访问频率限制: 实现访问者 $ip 在一定的时间 $time 内只能访问 $limit 次. 非脚本实现 private boolean accessLimit(String ip, int limit, int time, Jedis jedis) { boolean result = true; String key = "rate.limit:" + ip; if (jedis.exists(key)) { long afterValue = jedis.incr(key); if (afterValue > limit) { result = false; } } else { Transaction