redis命令参考:
redis-cli中那些或许我们还不知道的一些实用小功能:
https://www.cnblogs.com/huangxincheng/p/6159890.html
数据类型和命令:
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.