前言

本文主要纪录Redis在Linux中的安装、运行和Redis一些常用命令,其中包含String、List、Set、Hash、zset等命令。

Redis安装步骤

Redis具体下载过程:略。

解压

tar -zxvf redis.tar.gz

安装

进入redis目录

make && make install

可在/usr/local/bin/目录中查看,bin目录中的命令可以在任何地方运行。

Linu redis 设置值 redis-cli命令用法linux_redis

运行

直接运行

redis-server

Linu redis 设置值 redis-cli命令用法linux_Linu redis 设置值_02

后台运行

在 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

Linu redis 设置值 redis-cli命令用法linux_缓存_03

关闭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开始