连接Redis命令
连接本地redis服务命令:redis-cli
$ redis-cli
redis 127.0.0.1:6379>
>help # 命令行的帮助
>keys * # 查看所有的key列表
>info # 查看服务器信息,如占用系统内存,看其中的used_memory_human值
>select 2 # 切换到数据库2
远程连接redis服务命令:redis-clo -h host -p port -a password
key操作命令
keys * :查询所有的key;
dump k:序列化k,并返回被序列化的值;
del k :要删除的key;
exists k :key是否存在,存在返回1,不存在返回0;
expire k s:设置key的有效时间秒;
ttl k:查看k的有效时间;
pexpire k ss:设置key的毫秒有效时间;
persist k:将有效时间去掉;
keys user:? :模糊查询key;
keys user:*:模糊查询key;
randomkey:随机获取一个key(抽奖);
rename k1 k2:重命名key;
select 下表:(redis数据库默认16个数据库(0~15)):根据下标切换数据库;
move k 下标:移动key到其他的库;
type k:获取key所存储的数据类型;
String类型命令
set(key, value):给数据库中名称为key的string赋予值value
get(key):返回数据库中名称为key的string的value
getset(key, value):给名称为key的string赋予上一次的value
setnx(key, value):添加string,名称为key,值为value
setex(key, time, value):向库中添加string,设定过期时间time
getrange k start end(偏移量):通过开始,结束位置截取k的值
getbit k number:
mget k k k :获取多个k的值
getset k v:设置k的新值,返回k的旧值
strlen k:获取k值的长度
incr k:k值自增加一,如果k不存在,初始化0
incrby k num :每次想自增数值
decr k:自减
decrby k num;每次想自减的值
hash类型命令
hset k(对象名称) field(属性) v(值) :添加hash
hget k field:获取元素的值
hmset k field v field v field v ….:批量添加hash元素的值
hgset k field field field :批量获取hash元素
hgetall k:获取所有k中的元素
hlen k :获取hash中有多少个元素
hkeys k:获取hash中所有字段
hdel k field field…..:删除hash中多个属性
hincrbyfloat :浮点类型增加
hsetnx k fireld v :如果field有值则不保存,没有则保存
hincrby k field num :指定hash中字段field自增num
hexists k field: k中是否存在field元素
list类型命令
lpush k:从左边添加元素
rpush k:从右边添加元素
lrange k start end:通过下标范围获取元素
lrange k 0 -1:获取k中所有的元素
Lpushx key value
将一个值插入到已经存在的列表的头部,如果列表不存在,操作无效
Rpushx key value
将一个值插入到已经存在的列表的尾部,如果列表不存在,操作无效
llen k:获取k中元素的个数
lindex k 下标:通过下表获取元素
lpop k :从左边移除元素
rpop k :从右边移除元素
blpop k timeout :从左边移除元素,没有元素等待时间,有移除
brpop k timeout :从右边移除元素,没有元素等待时间,有移除
ltrim k start end :要保留start~end之间的元素
lset k index renamekey :修改下标index元素
linsert k before/after 元素 数据:在元素之前或者之后插入数据
rpoplpush k1 k2:从k1移除一个元素到k2的头部
set类型命令
sadd k v v v v v:添加元素
scard k:查看集合的大小
smembers k :查看k所有的元素
sismember k 元素;查看k中有没有这个元素
srandmember k count:随即从k中取出count个元素
spop k count:移除count个元素并返回结果
srem k 元素:指定移除哪个元素
smove set k1 元素:将元素移入到k1中
sdiff k1 k2 :取差集,取k1中有的,k2中没有的元素
sinter k1 k2:取k1 k2交集的元素
sunion k1 k2:取k1 k2并集的元素
sunionstore k3 k1 k2 :把k1 k2中并集的元素存放在k3中
zSet类型命令
zadd k 分数 元素 分数 元素….:增加元素
zcard k:查找有多少个元素
zrange k 0 -1:查看所有元素
zrange k 0 -1 withscores:查看所有元素以及分数
zrevrange k 0 -1 :倒序查看所有元素
zcount k 分数1~分数2:查看分数1~分数2之间的元素个数
zrank k 元素:查找该元素所在集合中下标的位置
zadd k 分数 原有元素:修改该元素的分数
zremrangebyrank k 下标1~下标2:删除下标1~下标2之间的元素
zremrangebyscore k 分数1~分数2:删除分数1~分数2之间的元素
zincrby k num 元素:k中的元素分数自增num个
zscore k 元素:返回元素的分数
持久化
save:将数据同步保存到磁盘
bgsave:将数据异步保存到磁盘
lastsave:返回上次成功将数据保存到磁盘的Unix时戳
shundown:将数据同步保存到磁盘,然后关闭服务
其他命令
flushdb:删除当前库中的所有信息
flushall:删除库中的所有数据
subscribe cctv …..:订阅多个频道
publish cctv message:发布信息(message)
unsubscribe cctv….:退订频道
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》