前言
本文主要纪录Redis在Linux中的安装、运行和Redis一些常用命令,其中包含String、List、Set、Hash、zset等命令。
Redis安装步骤
Redis具体下载过程:略。
解压
安装
进入redis目录
可在/usr/local/bin/目录中查看,bin目录中的命令可以在任何地方运行。

运行
直接运行

后台运行
在 redis.conf 文件中修改:daemonize yes
1
| redis-service /路径/redis.conf
|
Redis启动关闭
后台启动Redis
1
| redis-service /路径/redis.conf
|
进入Redis客户端
1 2 3 4
| redis-cli 或者 redis-cli -h 127.0.0.1 -p 6379 redis-cli --raw #可以解决中文乱码
|
测试客户端是否连接,并关闭redis

关闭Redis
1 2 3
| 127.0.0.1:6379> shutdown 或者 redis-cli shutdown
|
Redis常用指令
Redis基本指令
1 2 3 4 5 6 7 8 9 10 11
| keys * #查询当前库的所有键 exists <key> #判断某个键是否存在 type <key> #查看键的类型 del <key> #删除某个键
expire <key> <seconds> #为键值设置过期时间,单位秒 ttl <key> #查看还有多少秒过期,-1表示不过期,-2表示已过期
dbsize # 查看当前数据库的key的数量 Flushdb #清空当前库 Flushall #清空所有库
|
String指令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| 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指令
1 2 3 4 5 6 7 8 9 10
| 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指令
1 2 3 4 5 6 7 8 9 10 11
| 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指令
1 2 3 4 5 6 7 8 9
| 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指令
1 2 3 4 5 6 7 8 9
| 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开始
|