0%

Redis-入门(Linux)

前言

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

Redis安装步骤

Redis具体下载过程:略。

解压

1
tar -zxvf redis.tar.gz

安装

进入redis目录

1
make && make install

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

运行

直接运行

1
redis-server

image.png

后台运行

在 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
image.png

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

欢迎关注我的其它发布渠道