一、基本操作:
help 指令
获取相对应指令的帮助信息
二、数据类型: key永远是string类型,key一般设置成表名:主键名:主键值:字段名 ,来对应数据库中的数据
1)value是string: 如果string类型是数字,可以当成是数字进行操作
set key value
信息设置
mset key1 val1 key2 val2....
一次性设置多个数据
get key
信息获取,如果不存在则返回nil
mget key1 key2...
一次性获取多个数据
strlen key
获取val的长度
append key val
如果原始信息存在就追加,否则创建
setnx key val/set key val nx key不存在才能创建
set key val xx key存在才能创建
set key val ex/px 设置有效期
拓展操作: 如果val的类型可以看成是string的话,可以进行incr和decr操作incr/decr key
加减1,如果不是整数返回错误,键不存在返回1incrby/decrby key increment
加减指定的值setex key seconds val / psetex key milliseconds val
设置具有生命周期的数据
string内部有三种编码:redis会根据当前值类型和长度决定使用哪一种编码
1)int:8个字节的长整型
2)embstr:小于等于39字节的字符串
3)raw:大于39字节的字符串
2)value是hash类型: hash中的value只能是string
hset key field value
设置具体的值
hget key filed
获取对应的数据
hgetall key
获取对应的hash数据
hdel key field1 [filed2] [filed3] ...
删除对应的数据
hmset key field1 value1 field2 value2....
设置多个具体的值
hmget key filed1 field2....
获取多个filed对应的val
hlen key
获取对应的key的字段数,field的数目
hexists key
查看是否存在指定的字段
拓展操作:hkeys/hvals keys
获取对应的键或值
3)list类型: 底层双向链表
lpush/rpush key value1 value2 ....
添加数据
lrange key start stop
从左开始呈现数据,start和stop为索引,闭合区间[start,stop]
linsert key before|after pivot value
在pivot前|后插入元素
lindex key index
指定索引对应的value
llen key
指定key中value的个数
ltrim key start stop
只留下[start,stop]之间的元素
lpop/rpop key
获取并移除数据
拓展操作:blpop/brpop key1 key2 timeout
阻塞操作,在规定时间内获取并且移除数据,lrem key count value
count表示多少个,value表示要删除的元素
4)set类型:
sadd key value1 value2 ...
添加数据
smembers key
获取全部数据
srem key value1 value2...
删除数据
scard user
查看key中有几个value
sismember key member
查看是否包含指定的key
set随机数据扩展操作:srandmember key count
随机获取key中count个valuespop key
随机获取某个value并移除
交并差操作:
求两个集合的交并差:sinter(store) (destination)key1 key2 ...
求交集并存储到destinationsunion(store)(destination) key1 key2 ...
求并集并存储到destinationsdiff(store)(destination) key1 key2 ...
求差集并存储到destination
5)sorted_set 会根据score来排序
zadd key score1 value1 score2 value2...
添加数据,默认升序zrange/zrevrange key start stop [withscores]
获取全部的数据zrem key value
删除某个数据zcard key
查看有多少数据zcount key min max
查看指定的[min,max]之间有多少数据zscore key member
查看某个成员的score
查询扩展操作:zrange\zrevrange key start end [withscores] [limit] [start num]
查询排名处于[start,end]之间的数据zrangebyscore key min max [withscore]
查询score处于[min,max]之间的memberzremrangebyrank key start stop
按照排序来删除zremrangebyscore key min max
按照scores来删除
zrank key value
获取排名,低往高,0开始计算zrevrank key value
获取排名,高往低zscore key value
获取scorezincrby key increment value
对应的value中的score+increment
集合操作:zinterstore destination numkeys key1 key2... weights [weight1,weight2...] aggregate sum|min|max
三、通用命令:
1)key是一个string:del key
删除指定keyexists key
获取key是否存在type key
获取key的类型rename key newkey
重命名key,如果原来的newkey存在,则会被覆盖,使用renamenx
则不会keys pattern
遍历所有键去匹配
2)时效性控制:expire key seconds或者expireat key timestampe
设置有效期,只对ttl key
获取有效期,正整数为剩余的过期时间,-1为永久性有效,-2表示已经过期,set string类型会导致时效性过期persist key
将key转换成永久性
3)查询模式:keys pattern
查询key,pattern表示匹配模式,查询所有满足条件的key,*表示任意个字符,?表示任意一个符号,[]指定一个匹配的符号scan cursor [match pattern] [count number]
cursor为游标,第一次为0,每次scan都会返回一个数,直到0遍历结束,count number默认为10,出现了增删情况就不能保证全部遍历
4)数据库通用指令:redis提供16个数据库select index
切换使用的数据库flushdb
清除当前数据库数据
5)迁移键:
move key db
将key从一个数据库中移动到另一个数据库中
dump key + restore key ttl value
实现不同redis之间的转移,**非原子执行,需要在各个redis开启客户端,**源redis中dump会将键值序列化成RDB文件,目标redis会根据value将键值复原
migrate host port key/“” destination-db timeout [copy][replace] key key1 key2
原子操作,只需要开启源redis的客户端,