一、基本操作:

help 指令 获取相对应指令的帮助信息

redis有key获取值_redis


二、数据类型: 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,如果不是整数返回错误,键不存在返回1
incrby/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

redis有key获取值_redis_02


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类型: 底层双向链表

redis有key获取值_redis有key获取值_03


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类型:

redis有key获取值_数据库_04


sadd key value1 value2 ...添加数据

smembers key获取全部数据

srem key value1 value2...删除数据

scard user查看key中有几个value

sismember key member查看是否包含指定的key

set随机数据扩展操作:
srandmember key count随机获取key中count个value
spop key随机获取某个value并移除

交并差操作:
求两个集合的交并差:
sinter(store) (destination)key1 key2 ...求交集并存储到destination
sunion(store)(destination) key1 key2 ...求并集并存储到destination
sdiff(store)(destination) key1 key2 ...求差集并存储到destination

5)sorted_set 会根据score来排序

redis有key获取值_数据库_05

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]之间的member
zremrangebyrank key start stop按照排序来删除
zremrangebyscore key min max按照scores来删除

zrank key value获取排名,低往高,0开始计算
zrevrank key value获取排名,高往低
zscore key value获取score
zincrby key increment value对应的value中的score+increment

集合操作:zinterstore destination numkeys key1 key2... weights [weight1,weight2...] aggregate sum|min|max

三、通用命令:
1)key是一个string:
del key删除指定key
exists 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的客户端,

redis有key获取值_redis有key获取值_06