您的位置:首页 > 数据库 > Redis

redis学习笔记

2017-12-29 22:55 411 查看
数据类型和命令:

1.简单类型:

get/set key value简单操作

incr可以对值增1(为空的内容执行incr结果为1),会检查值的类型,如果不是整数类型,会报错。表示的最大范围为2^64-1,也就是9223372036854775807,超过这个范围就会报错。认为redis检查值是否是整数是通过判断每一位是否是数字0-9对应的utf-8编码来实现的。

decr对值减1。还有增加指定数据的操作:incrby key increment,decrby key incrment。 还有更神奇的操作:incrbyfloat/decrbyfloat  key incremnet(浮点数的范围也是双精度)

我猜测redis的实现原理是这样的(有待后面学习后验证):

1.存在数据库的是字符。

2.当你执行incr/decr/incrbyfloat/decrbyfloat命令的时候,对字符进行判断,是否能够转换成整数或者浮点数,以及是否溢出。

3.进行字符到数值的转换,并进行运算,运算完成后再转换成字符串存回去。

同时redis有限制条件:对于只能转换成浮点数的字符串,无法执行incr/decr命令。而能够转换成整数或浮点数的,自然能够执行Incrbyfloat/decrbyfloat

"GETBIT key offset "  "SETBIT
key offset value"对位进行操作,要记住字符串是以ascii码形式保存的。

2.散列类型

散列类型即是说一个key键对应的值是散列类型。

如:

hset age A  21

hset age B  22

hset age C  23

hget key filed 

hmget/hmset 可以同时操作多个键值对

hgetall 获取所有键和值

hkeys key

hvals key

hexists key filed 判断file是否存在

hsetnx key filed value filed不存在时进行设置

hincrby/hincrbyfloat key filed value,理解了上面关于incr/decr的解释后,这个概念没有什么疑惑的。

hdel key filed [filed ...]

3.列表类型

即是说一个key键对应的值是列表类型

4.set类型

即是说一个key键对应的值是set类型

5.有序集合类型

即是说一个key值对应的值是有序set类型

疑问:

1.为什么整数可以加浮点数,浮点数却不可以加整数?

2.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: