安装配置启动
redis-6.2.1
的安装压缩包(https://download.redis.io/releases/)
先对安装压缩包进行解压
tar -zxvf redis-6.2.1.tar.gz
解压之后将在当前目录下面多出来一个redis-6.2.1
文件,将该文件移动至usr/local
中去,一般都会将安装的应用程序放在此位置
mv redis-6.2.1 /usr/local
安装gcc环境,对于安装过程的询问选择:y
yum install gcc
安装完成之后,检查是否已经安装完毕:
gcc --version
安装完成gcc之后,对redis安装包进行编译:进入redis-6.2.1文件夹中执行编译指令
make
编译之后,执行安装指令
make install
安装完毕,默认的安装位置是/usr/local/bin
进入该文件夹中查看cd /usr/local/bin
-rwxr-xr-x. 1 root root 4833424 1月 31 20:20 redis-benchmark
lrwxrwxrwx. 1 root root 12 1月 31 20:20 redis-check-aof -> redis-server
lrwxrwxrwx. 1 root root 12 1月 31 20:20 redis-check-rdb -> redis-server
-rwxr-xr-x. 1 root root 5003440 1月 31 20:20 redis-cli
lrwxrwxrwx. 1 root root 12 1月 31 20:20 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 9450272 1月 31 20:20 redis-server
其中比较重要的两个文件是
redis-cli
:redis服务器启动命令
与redis-server
客户端,操作入口
前台启动redis:
在redis的安装目录下执行:redis-server
停掉redis:Ctrl+c
配置后台启动
将redis安装目录下面的文件redis.conf
复制到指定的位置(随意指定)
cp redis.conf /etc/redis.conf
更改新的文件的内容,将其中的daemonize no改为yes
进入到/usr/local/bin
目录下面启动redis,
redis-server /etc/redis.conf
查看进程
ps -ef | grep redis
打开命令行工具
redis-cli
关闭命令行工具
exit
关闭redis进程
shutdown
或者使用kill命令关闭
kill -9 PID
基本命令
查看当前库所有key
keys *
设置key值与value
set key value
判断key是否存在
exists key
查看key是什么类型
type key
删除指定的key数据
del key
根据value选择非阻塞删除—仅将keys从keyspace元数据中删除,真正的删除会在后续异步操作。
unlink key
为给定的key设置过期时间
expire key 10
查看还有多少秒过期,-1表示永不过期,-2表示已过期
ttl key
数据库的选择
select nums
查看数据库的key数量
dbsize
清空当前库
flushdb
通杀全部库
flushall
String
添加键值:
set key value
查询对应键值:
get key
将给定的值value追加到key原值的末尾
append key value
获取指定值key的长度
strlen key
只有在指定key不存在的时,设置key的值
setnx key value
将指定key中的数字值增一,只能对数字值进行操作
incr key
将指定key中的数字值减一,只能对数字值进行操作
decr key
incrby / decrby <key><步长>将 key 中储存的数字值增减。自定义步长。
同时设置一个或多个key_value的值
mset key1 value1 key2 value2
同时获取一个或者多个value
mget key1 key2 key3...
设置键值的同时,设置过期时间
setex key 过期时间 value
获的值的范围,类似与substring
getrange key 起始位置 结束位置
覆写key所储存的字符串值,从其实位置开始
setrange key
List列表
从左边/右边插入一个或者多个值
lpush/rpush key1 value1 value2 value3
从左边/右边吐出一个值,
lpop/rpop key
从key1列表右边吐出一个值,插到key2列表左边
rpoplpush key1 key2
按照索引下标获取元素
lrange key start stop
获取所有的元素
lrange key 0 -1
按照索引下标获取元素
lindex key index
获取列表的长度
llen key
在指定元素value 的前面插入新元素newvalue
linsert key before value newvalue
在指定的位置value开始从左边删除n个元素
lrem key n value
在指定位置下标index的元素替换成value
lset k1 index value
Set集合
自动排重
将一个或者多个member元素加入到集合key中,已经存在的member元素将被忽略
sadd key value1 value2...
取出key集合中所有的值
smembers key
判断集合key中是否含有指定的值value
sismember key value
返回指定集合元素的个数
scard key
删除集合中的指定元素
srem key value value2 ...
随机从该集合中吐出一个元素
spop key
随机从该集合中取出n个元素,不会从集合中删除
srandmember key n
把集合score中一个值value从一个集合destination移动到另一个集合
smove score destination value
返回两个集合的交集元素
sinter key1 key2
返回两个集合的并集元素
sunion key1 key2
返回两个元素的差集元素
sdiff key1 key2
Hash
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
类似Java里面的Map<String,Object>
给集合user:1001中的id键赋值1
hset user:1001 id 1
给集合key中的field键赋值value
hset key1 field value
从集合key1中去除field的值value
hget key1 field
批量设置hash的值
hmset key1 field1 value1 field2 value2...
hmset user:1002 id 2 name lisi age 30
查看哈希表中key中给定域field是否存在
hexists key1 field
hexists user:1002 id
查看指定的hash集合中所有field
hkeys key
查看指定的hash集合中所有的value
hvals key
为哈希表 key 中的域 field 的值加上增量 1 -1
hincrby key field increment
hincrby user:1002 age 2
为哈希表key中的域field的值设置为value,当且仅当域field不存在
hsetnx key field value
hsetnx user:1002 gender 1
zset
Redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。
不同之处是有序集合的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了 。
将一个或者多个member元素及其score值加入到有序集key中
zadd key score1 value1 score2 value
返回有序集key中,下标在start和stop之间的元素
zadd key start stop (withscores)
带上withscores可以让分数一起和值返回打结果集
返回有序集key中所有score值介于min和max之间的成员,从小到大排序
zrangebyscore key max min
从大到小排序
zrevrangebyscore key min max
为元素value的score加上增量increment
zincrby key increment value
zincrby k1 50 java
删除指定集合下指定元素
zrem key value
统计指定集合下指定分数区间的元素个数
zcount key min max
返回指定值在集合中的排名,从零开始
zrank key value