编程我只用CPP 发布的文章

ColorTable00 0 4
ColorTable01 8388608 4
ColorTable02 32768 4
ColorTable03 8421376 4
ColorTable04 128 4
ColorTable05 8388736 4
ColorTable06 32896 4
ColorTable07 12632256 4
ColorTable08 8421504 4
ColorTable09 16711680 4
ColorTable10 65280 4
ColorTable11 16776960 4
ColorTable12 255 4
ColorTable13 16711935 4
ColorTable14 65535 4
ColorTable15 16777215 4
CtrlKeyShortcutsDisabled 0 4
CursorSize 25 4
EnableColorSelection 0 4
ExtendedEditKey 1 4
ExtendedEditKeyCustom 0 4
FaceName DefaultTTFont 1
FilterOnPaste 1 4
FontFamily 0 4
FontSize 1048576 4
FontWeight 0 4
ForceV2 1 4
FullScreen 0 4
HistoryBufferSize 50 4
HistoryNoDup 0 4
InsertMode 1 4
LineSelection 1 4
LineWrap 1 4
LoadConIme 1 4
NumberOfHistoryBuffers 4 4
PopupColors 245 4
QuickEdit 1 4
ScreenBufferSize 589889656 4
ScreenColors 7 4
ScrollScale 1 4
TrimLeadingZeros 0 4
WindowAlpha 255 4
WindowSize 1966200 4
WordDelimiters 0 4
[Error 259]


## 二、增加和删除键值

- `CreateKey(key, sub_key)`:创建一个新键,如果键存在就不会创建。
- `SetValueEx(key, value_name, reserved, type, value)`:给一个键值赋值,如果键不存在将会自动创建。
- `SetValue(key, sub_key, type, value)`:设置一个子键,并给予一个默认值`value`。
- `DeleteKey(key, sub_key)`:删除键

示例:

key = reg.OpenKey(reg.HKEY_CURRENT_USER, "Console")
try:

newKey = reg.CreateKey(key, r"test")  # 创建一个子键
reg.SetValueEx(newKey, r"newKey", 0, reg.REG_SZ, "HelloWorld") 
reg.SetValue(newKey, r"newSubKey", reg.REG_SZ, "Hey")

except Exception as e:

print e

运行后的结果:

![](https://i.maqian.xin/2017/12/20171203121447.png)

## 三、问题

### 3.1 WindwosError: Error 5

没有权限导致的,`OpenKey` 中的`sam` 变量表明了操作的权限,默认是`KEY_READ` ,改成`KEY_ALL_ACCESS` 然后以管理员身份运行即可。例如:

KEY = r"SYSTEMControlSet001ControlClass{4d36e968-e325-11ce-bfc1-08002be10318}"
key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, KEY, 0, _winreg.KEY_ALL_ACCESS)

一、expire和ttl命令

1.1 基本用法

Redis中的EXPIER 命令可以给键值设置过期时间,相关的命令及其格式为:

EXPIRE key seconds
PEXPIRE key milliseconds

两个命令分别表示设置秒级和毫秒级别的过期时间,到期之后系统会自动删除该键。

EXPIRE 命令返回1 表示设置过期时间成功,返回0 表示键不存在或者设置失败。

127.0.0.1:6379> set k 1
OK
127.0.0.1:6379> expire k 60
(integer) 1
127.0.0.1:6379> expire x 1
(integer) 0

- 阅读剩余部分 -

一、事务的描述

MySQL 一样,Redis 中也有事务 这一个概念,redis中的事务也是可以用来执行一组命令的集合,同时也可以把事务当作一个命令。因为它的特性和命令无差,要么正确全部运行,要么错误都不运行。但是和MySQL 的事务不同的是,redis中的事务不支持回滚操作。也就是说,一旦事务出错,它没有办法再回到程序出错前,只能由程序员自己想办法来处理剩下的烂摊子。

- 阅读剩余部分 -

一、概述

redigo 是一个redisgo client ,官方描述为:Redigo is a Go client for the Redis database.

基本特点:

  • 简单的API调用,并支持所有的redis命令。
  • 支持管道、事务、订阅以及连接池。

项目首页:https://github.com/garyburd/redigo/

官方文档:https://godoc.org/github.com/garyburd/redigo/redis

安装:go get github.com/garyburd/redigo/redis

- 阅读剩余部分 -

1:(error) WRONGTYPE Operation against a key holding the wrong kind of value

今天打开redis输入命令zadd k 1 maqian 2 xiaoming 3 xiaohua 报错,百度了一下出现这个问题的原因是已经存在一个别的类型的键k ,把原来的k 删除即可。

127.0.0.1:6379> zadd k 1 maqian 2 xiaoming 3 xiaohua
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> keys *
1) "rs"
2) "dst"
3) "k"  # 已经存在了一个k
4) "k2"
5) "k3"
127.0.0.1:6379> del k
(integer) 1
127.0.0.1:6379> zadd k 1 maqian 2 xiaoming 3 xiaobai
(integer) 3

一、基本操作

有序集合也是集合的一种,顾名思义,它和集合的不同之处在于它是有序的 ,而集合无序。它通过给集合中每一个元素都关联一个分数来是的元素有序,同时提供了多个方式获取排序之后的元素。

1.1 增加和删除元素

增加元素:

ZADD key score member [score member ...]

当key不存在时自动创建,分数支持整数和双精度浮点数,同时还可以使用+inf-inf分别表示正无穷大和负无穷大。执行成功返回添加的元素个数。

删除元素:

ZREM key member [member ...]

移除元素,返回成功移除的个数。

- 阅读剩余部分 -

一、概念和原理

集合是redis中的基本数据类型之一,redis中的集合可以用来存储一堆无序的元素,集合内的元素不会重复,只有存在或者不存在两种属性。

redis集合内部是由intsethashtable实现的,当条件不满足时redis会自动转换内部编码。集合中使用intset的条件:

  1. 集合的所有的元素都是整数
  2. 集合中元素的个数不超过512个

一旦两者的任一条件不满足时,就会转换成hashtable编码。

- 阅读剩余部分 -