前言
本文主要纪录Redis在Linux中的安装、运行和Redis一些常用命令,其中包含String、List、Set、Hash、zset等命令。
Redis安装步骤
Redis具体下载过程:略。
解压
tar -zxvf redis.tar.gz
安装
进入redis目录
make && make install
可在/usr/local/bin/目录中查看,bin目录中的命令可以在任何地方运行。
运行
直接运行
redis-server
后台运行
在 redis.conf 文件中修改:daemonize yes
redis-service /路径/redis.conf
Redis启动关闭
后台启动Redis
redis-service /路径/redis.conf
进入Redis客户端
redis-cli
或者
redis-cli -h 127.0.0.1 -p 6379
redis-cli --raw #可以解决中文乱码
测试客户端是否连接,并关闭redis
关闭Redis
127.0.0.1:6379> shutdown
或者
redis-cli shutdown
Redis常用指令
Redis基本指令
keys * #查询当前库的所有键
exists <key> #判断某个键是否存在
type <key> #查看键的类型
del <key> #删除某个键
expire <key> <seconds> #为键值设置过期时间,单位秒
ttl <key> #查看还有多少秒过期,-1表示不过期,-2表示已过期
dbsize # 查看当前数据库的key的数量
Flushdb #清空当前库
Flushall #清空所有库
String指令
get <key> #查询对应键值
set <key> <value> #添加键值对
append <key> <value> #将给定的<value>追加到原值的末尾
strlen <key> #获得值的长度
setnx <key> <value> #只有在key不存在时设置key的值
incr <key> #将key中存储的数字值加1,只对数字值操作,如果为空,新增值为1
decr <key> #将key中存储的数字值减1,只对数字值操作,如果为空,新增值为-1
incrby/decrby <key> <步长> #将key中存储的数字值增减,自定义步长
mset <key1> <value1> <key2> <value2>... #同时设置一个或者多个key-value对
mget <key1> <key2>... #同时获取一个或者多个value
msetnx <key1> <value1> <key2> <value2>... #同时设置一个或者多个key-value对,当且仅当所有给定key都不存在
getrange <key> <起始位置> <结束位置> #获取值的范围,类似java中的substring
setrange <key> <起始位置> <value> #用<value>覆盖<key>所存储的字符串值,从<起始位置>开始
setex <key> <过期时间> <value> #设置键值的同时,设置过期时间,单位为秒
getset <key> <value> #设置新值的同时获得旧值
List指令
lpush/rpush <key> <value1> <value2>... #从左边/右边插入一个或多个值
lpop/rpop <key> #从左边/右边吐出一个值,值在键在,值光键亡
rpoplpush <key1> <key2> #从<key1>列表右边吐出一个值,插到<key2>列表左边
lrange <key> <start> <stop> #按照索引下标获得元素(从左到右)
lindex <key> <index> #按照索引下标获得元素(从左到右)
llen <key> #获得列表长度
linsert <key> after <value> <NEWvalue> #在<value>的后面插入<newvalue>插入值
lrem <key> <n> <value> #从左边删除n个value(从左到右)
Set指令
sadd <key> <value1> <value2>... #将一个或多个member元素加入到集合key当中,已经存在于集合的member元素将被忽略
smemebers <key> #取出该集合的所有值
sismember <key> <value> #判断集合<key>是否为含有该<value>值,有返回1,没有返回0
scard <key> #返回该集合的元素个数
srem <key> <value1> <value2>... #删除集合中的某个元素
spop <key> #随机从该集合中吐出一个值
srandmember <key> <n> #随机从该集合中取出n个值,不会从集合中删除
sinter <key1> <key2> #返回两个集合的交集元素
sunion <key1> <key2> #返回两个集合的并集元素
sdiff <key1> <key2> #返回两个集合的差集元素
Hash指令
hset <key> <field> <value> #给<key>集合中的<field>键赋值<value>
hget <key1> <field> #从<key1>集合<field>取出value
hmset <key1> <field1> <value1> <field2> <value2>... #批量设置hash的值
hexists key <field> #查看哈希表key中,给定域field是否存在
hkeys <key> #列出该hash集合的所有field
hvals <key> #列出该hash集合的所有value
hincrby <key> <field> <increment> #为哈希表key中的域field的值增加increment,减少为-increment
hsetnx <key> <field> <value> #将哈希表key中的域field的值设置为value,当且仅当域field不存在
zset指令
zadd <key> <score1> <value1> <score2> <value2>... #将一个或多个memeber元素及其score值加入到有序集key当中
zrange <key> <start> <stop> [WITHSCORES] #返回有序集key中,下标在<start> <stop>之间的元素,带WITHSCORES,可以让分数一起和值返回到结果集。
zrangebyscore key min max [WITHSCORES] [limit offset count] #返回有序集key中,所有score值介于min和max之间(包括等于min或max)的成员。有序集成员按score值递增(从小到大)次序排列
zrevrangebyscore key max min [withscores] [limit offset count] #同上,改为从大到小排序
zincrby <key> <increment> <value> #为元素的score加上增量
zrem <key> <value> #删除该集合下,指定的元素
zcount <key> <min> <max> #统计该集合,分数区间内的元素个数
zrank <key> <value> #返回该值在集合中的排名,从0开始