目录
string
基本操作
添加及修改数据
获取数据
删除数据
对key的值进行增加和删减
设定key的生命时间
hash
基本操作
获取数据
删除数据
检查是否有数据
list
基本操作
添加及修改数据
获取数据
set
基本操作
添加数据
获取数据
删除数据
sorted_set
基本操作
添加数据
获取数据
删除数据
排序数据
Key
基本操作
查询key
key改名操作
按key获取类型
key是否存在
key删除
设置key的生命时间
获取key的生命时间
把key转为永久性
存储的数据:单个数据
数据格式:一个存储空间保存一个数据
set key value #添加单个数据
mset key1 value1 key2 value2 key3 value3... #通过key添加多个数据
append key value #有数据就追加,没有数据则进行新建操作,追加后返回字符串的长度
通过key获取value,有数据则返回value,没有数据则返回nil
get key #通过key获取value,有数据则返回value,没有数据则返回nil
mget key1 key2 key3 #获取多个数据
strlen key #通过key获取string的长度
删除后返回(integer)1 则代表删除成功;返回(integer)0 则代表删除失败
del key
incr key #增加1
incrby key increment #对数据进行指定数值的增加
#示例
incrby id 10 #增加10
incrbyfloat key increment #对数据进行小数的追加
#示例
incrbyfloat id 0.1 #增加0.1
decr key #减去1
当设置时间到了,再去get则会返回一个nil
setex key seconds value #seconds写时间 单位为秒
psetex key milliseconds value #millisconds写时间 单位为毫秒
采用的是一个key对应很多数据,在很多数据中包含field和value,一个field对应一个value,也就是一个key对应多个键值对的数据
主要用途为存储数据
添加及修改数据
hset key field value #相比string 需要多写个field 插入单个数据
hmset key field value field1 value1 field2 value2 #插入多个数据
hget key field #通过key和field获取单个数据数据
hmget key field1 field2 field3.. #通过key获取多个数据
hgetall key field #通过key和field获取全部数据数据
hkeys key #查询所有的key
hvals key #查询所有的values
hdel key field field1 field2... #返回(integer)1代表成功,0则是失败
hlen key #获取长度
hexists key field #检查是否为空 返回0则代表没有 1为有数据
可以保存多个数据,底层采用双向链表的结构,对数据进入的顺序进行区分,可以体现进入的顺序
lpush key value value1 value2... #从左边进行添加
rpush key value value1 value2... #从右边进行添加
#通过索引范围获取数据 如果通过lpush添加数据 输出则为倒序 通过rpush添加数据输出则为顺序
lrange key start stop
#例1: lrange student 0 10 表示从索引0至索引10的范围获取数据
#例2: lrange student 0 -1 其中-1表示最后一个,则可以进行全部查看
#通过索引获取数据
lindex key start stop
#例:lindex student 10 获取10号索引的数据
#查看长度
len key
#获取并移除数据 将数据取出打印,并从list中移除
lpop key #从左边获取并移除
rpop key #从右边获取并移除
#在规定的时间内将数据进行获取并移除
blpop key key1 timeout
brpop key key1 timeout
#例:blpop student 15 在15秒内对数据进行添加 并且操作指令对数据进行获取并移除,超过15秒,数据则消失
相对于hash取消了key,则是一个field对应一个value,提供更高的内部存储机制,更加便于高效的查询,并且值是不可以重复的
sadd key member member1... #返回1代表成功,返回0代表失败
smembers key #通过key获取全部数据
scard key #获取数据的总量
sismember key member #判断是否有指定的member 1则代表包含 0代表不包含
srem key member member1... #通过key删除数据
基于set的存储结构,提供了一种排序方式,更加的有利于数据的展示
zadd key score member score1 member1...
#例: zadd student 8 kobe
#获取数据总量
zcard key
#按条件获取数据总量
zcount key min max
#对于score进行升序输出,添加whitscores则展示member与score,不加则只展示member
zrange key start stop whitscores
#例: zrange student 0 -1 其中0代表从0开始 -1则代表是从最后一个结束 全部打印
#对于score进行降序输出,添加whitscores则展示member与score,不加则只展示member
zrevrange key start stop whitscores
#例: zrevrange student 0 -1 其中0代表从0开始 -1则代表是从最后一个结束 全部打印
#按照需要的条件进行数据获取(升序)
zrangebyscore key min max withscores
#例: zrangebyscore student 40 60 whitscores 表示获取40-60的学生
#按照需要的条件进行数据获取(降序)
zrevrangebyscore key min max withscores
#例: zrevrangebyscore student 40 60 whitscores 表示获取40-60的学生
#取集合交集的求和 操作后查询展示 注意:只有所有集合都有的数据才会求和
zinterstore destination numkeys key key1
#例: zinterstore destination(新保存的集合名字) numkeys(要操作的集合个数) key(操作的key名称) key1...
#通过key对数据进行删除
zrem key member member1...
#通过条件对数据进行删除
zremrangbyrank key start stop
zremrangebyscore key min max
#按照索引进行升序排列
zrank key member
#例: zrank student kobe 则会输出kobe排名第几(返回形式为索引)
#按照索引进行降序排列
zreverank key member
keys pattern #pattern为操作匹配的语法格式
#例: keys * 表示查看所有的key
keys stu* 表示查看以stu开头的key
keys *dent 表示查看以dent结尾的key
keys ?dent ?为占位符,一个?代表一个字符进行模糊查询
keys k[ob]be 查询以k开头,中间包含的字母为o或b的key,都有则都会输出
rename key newkey #将key进行改名,但是注意如果新设置的key与原先的key有重复,则会覆盖原先的key
renamenx key newkey #如果要更改的key,原先已有,则会更改失败
type key
exists key
del key
expire key seconds #按秒来设置key的生命时间
pexpire key milliseconds #按照毫秒设置key的生命时间
ttl key #查看key的有效期还有多久,若返回-2则代表要查询的key已经消失,若返回-1则代表key存在
persist key #当一个key处于时间控制的状态,使用此操作转为永久性