Redis快速入门

Redis安装说明

基于Linux服务器安装,本文以Centos7安装

Redis官方网站:Redis官网

1.单机安装Redis

1.1.安装Redis依赖

Redis是基于C语言编写的,因此首先需要安装Redis所需要的gcc依赖:

yum install -y gcc tcl

1.2. 上传安装包并解压

将下载好的Redis安装包上传至虚拟机的任意目录中,例如我放在了/usr/local/src中:

解压缩:

  1. 进入安装包上传目录进行解压缩:
tar -zxvf redis-7.0.8.tar.gz
  1. 解压成功后进入redis安装目录
cd redis-7.0.8/
  1. 运行编译命令;
make && make install

默认安装路径实在/usr/local/bin目录下:

该目录下以及默认配置到环境变量,因此可以在任意目录下运行这些命令。其中:

  • redis-cli:是redis提供的命令行客户端
  • redis-server:是redis的服务端启动脚本
  • redis-sentinel:是redis的哨兵启动脚本

1.3. 启动

redis启动方式有很多种,例如:

  • 默认启动
  • 指定配置启动
  • 开机自启
1.3.1默认启动

安装完成后,在任意目录输入启动redis:

redis-server

如图:

这种启动属于前台启动,会阻塞整个窗口,窗口关闭或按下CTRL+C则Redis停止。不推荐使用。

1.3.2 指定配置启动

如果要让Redis后台启动,则必须修改Redis的配置文件,就在解压缩的的目录下/usr/local/src/redis下的redis.conf。

先将这个文件进行备份:

cp redis.conf redis.conf.bck

然后修改redis.conf配置文件:

vi redis.conf
# 允许访问的地址,默认是127.0.0.1,会导致只能本地访问。修改为0.0.0.0则可以在任意ip访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes
# 密码,设置后访问Redis必须输入密码:
requirepass 123456

Redis的其他常见配置:

# 监听端口
port 6379
# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志,持久化等文件会保存在这个目录
dir .
# 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15
databases 1
# 设置redis能够使用的最大内存
maxmemory 512mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"

启动Redis:

# 进入redis安装目录
cd /usr/local/src/redis
# 启动
redis-server redis.conf
# 检查redis是否运行
ps -ef | grep redis

停止服务:

#利用redis-cli来执行shutdown命令
redis-cli -u 密码 shutdown
1.3.3 开机自启

我们也可以通过配置来实现开机自启。

首先,新建一个系统服务文件:

vi /etc/systemd/system/redis.service

内容如下:

[Unit]
Description=redis-server
After=network.target

[Service]
Type=forking
# 注意这一行改成你自己的配置
ExecStart=/usr/local/bin/src/redis-server /usr/local/src/redis-7.0.8/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

然后重载系统服务:

systemctl daemon-reload

现在就可以启动redis了

# 启动redis
systemctl start redis
# 查看redis状态
systemctl status redis
# 停止redis
systemctl stop redis
# 重启redis
systemctl restart redis
# 开机自启
systemctl enable redis

Redis基本操作:

数据库操作

Redis默认有16个库,编号为0-15,且默认访问0号库

select 数据库编号选择指定数据库
dbsize获取当前数据库键值对数量
flushdb清空当前数据库
flushall清空所有数据库
save将数据保存至磁盘
bgsave将数据同步保存至磁盘(后台:Background)
lastsave获取最后一次成功保存的unix时间

通用数据操作

操作范围为当前数据库

keys 格式查看符合指定格式的key,*为通配符
exists kry1[key2]查看是否存在一至多个指定的key
type key按key查看value的数据类型
del key1[key2]按key删除一至多个键值对
rename key1 key2重命名key1,如果key2已存在,其值会被覆盖
renamenx key1 key2key2不存在时重命名key1
move key 数据库编号按key将一个键值对移动到指定数据库
copy key1 key2将key1的值拷贝给key2

字符串(String)

基本操作:

set key value添加/修改一个键值对
get key按key获取value
mset key1 value1 [key2 value2…]添加/修改一至多个键值对
mget key1 [key2…]按key获取一至多个value
append key value在原有value后追加内容
strlen key查看字符串长度
getrange key startindex endindex获取范围是[startindex,endindex]的字串
index从0开始,-n表示倒数第n个字符
set key value nx
sentnx key value
仅在key不存在时,添加一个键值对
set key value xx仅在key已存在时,修改一个键值对
set key value get
getset key value
修改一个键值对并返回原值,原值不存在则返回nil
msetnx key1 value1 [key2 value2 …]批量版setnx

如果字符串的内容是整数:

incr key按key创建值为1的value,或使value增长(increase)1
incrby key 数值按key使value增长(increase)给定的数值
decr key按key是value减小(decrease)1
decrby key 数值按key是value减小(decrease)给定的数值

临时键值对:

生存时间time to live,缩写为ttl,指键值对距离被删除的剩余秒数

如果重新set,生存时间将被重置

以下操作支持各种数据类型

expire key 秒数设定一个生存时间
ttl key查看生存时间的剩余秒数
key不存在则返回-2,永久键值对则返回-1
pexpire key 毫秒数毫秒版expire
pttl key毫秒版ttl
persist key持久化(取消生存时间)

以下操作仅支持字符串

set key value ex 秒数
setex key 秒数 value
set+expire
set key value px 毫秒数
psetex key 毫秒数 value
set+pexpire
set key value exat unix秒设置一个unix秒的过期时刻
set key value pxat unix毫秒设置一个unix毫秒的过期时刻
set key value keepttlset时不重置ttl

散列表(哈希表/Hash):

key-field-value,键-字段-值

基本操作:

hset key field1 value1 [field2 value2 …]
老版本hset为单个字段和值,多个为hmset
添加/修改一个键与一至多对字段和值
hget key field按key和field获取一对value
hmget key field1 [field2 …]按key和field获取一至多对value
hgetall key按key获取field获取全部的field-value
hdel key field1 [field2 … ]删除一至多对field-value
hsetnx key field value仅在field不存在时添加一对field-value
hkeys key查看一个散列表中所有的field
hvals key查看一个散列表中所有的value
hlen key统计一个散列表中有多少对field-value
hexists key field查看一个field是否存在
hstrlen key field按key和field查看value的长度

如果value字符串的内容是数值:

hincrby key field 整数值按key和field使value增长给定的值
hincrbyfloat key field 小数值按key和field使value增长给定的值

列表(List/列队):

key-value0-value1-…,键-有序的值列队

基本操作:

rpush key value0 [value1 …]在列表右侧推入1至多个值
lpush key […value1] value0在列表左侧推入1至多个值
rpop key [数量]从列表右侧弹出(指定数量的)值
全部弹出后,可以也会被删除
lpop key [数量]从列表左侧弹出(指定数量的)值
全部弹出后,可以也会被删除
rpushx key value0 [value1 …]仅当列表存在时,在列表右侧推入1至多个值
lpushx key […value1] value0仅当列表存在时,在列表左侧推入1至多个值
lset key *index value修改指定位置的值
linsert key before/after 定位value value在定位value前/后插入一个值
lindex key *index按照索引查值
lrange key *startindex *endindex查看指定范围的值
llen key按照key查看队列长度
lrem key 数量 value删除指定值
数量为正代表从左侧开始删除,数量为负代表从右侧开始删除
ltrim key *startindex *endindex将列表修剪到给定范围

索引从0开始,-n表示倒数第几个

集合(Set):

key-stringX,stringY…,键-无序的不重复的成员

基本操作:

sadd key stringx [stringY …]添加1至多个成员
srem key stringX [stringY …]删除1至多个成员
scard key返回成员数量
集合基数cardinality
sismember key string查看是否存在指定成员
smismember key stringx [stringY …]批量查看是否存在指定成员
smembers key查看集合中所有成员
srandmember key[数量]随机查看指定数量的成员
spop key [数量]随机取出指定数量的成员
smove key1 key2 string将指定成员从集合1移至集合2
sinter key1 [key2 …]查看给定集合的交集
sinterstore newkey key1 [key2 …]存储给定集合的交集
sunion key1 [key2 …]查看给定集合的并集
sunionstore newkey key1 [key2 …]存储给定集合的并集
sdiff key1 [key2…]查看给定集合的差集
sdiffstore newkey key1 [key2 …]存储给定集合的差集

有序集合(ZSet):

key-score1:stringX,score2:stringY…

键-按分数排序的不重复成员

基本操作:

zadd key [nx/xx][gt/lt][ch][incr] score1 string× [score2 stringY…]添加1至多个成员
NX︰仅当成员不存在时添加成员
XX:仅当成员存在时修改成员
LT(less than):仅当分数低于原有分数时才更新分数
GT(greater than):仅当分数高于原有分数时才更新分数
NX不可以与LT/GT同时使用
CH(changed)︰返回变更的成员数量*默认返回新增的成员数量
incr:累加分数
*选择incr时,只能操作一个分数-成员对
zrem key stringX [stringY …]删除1至多个成员
zcount key minScore maxScore返回指定分数区间内的成员数量支持开区间:分数前加"("
支持无穷大: “-inf"负无穷大,”+inf"正无穷大
zscore key string查看成员分数
成员不存在时返回nil
zmscore key stringX [stringY …]批量查看成员分数
成员不存在时返回nil
zcard key查看成员数量
zincrby key数值string将指定成员的分数增加给定数值

区间操作:

zrange key start end [byscore/bylex] [rev][limit偏移量查看数量][withscores]查看指定分数区间内的成员
BYSCORE:按分数升序排序
BYSCORE支持开区间:分数前加"(“
BYSCORE支持无穷大:”-inf"“负无穷大,”+inf"“正无穷大
BYLEX(lexicographical)︰(分数相同时)按成员字符排序
BYLEX指定的时字符串区间,且需要指定开闭:“”[string"表示闭区间,“(string"表示开区间
BYLEX支持选取到开始或结束:”_“表示开始,”+"表示结束
REV(reverse)︰反转
LIMIT:用于指定查看范围,仅在开启BYSCORE/BYLEX时可用
WITHSCORES:带分数
*zrevrange key start end [withscores]不再推荐,等效于zrange key start end rev [withscores]
zrangestore newkey key start end [byscore/bylex][rev] [limit偏移量查看数量]存储指定分数区间内的成员
参考zrange key start end [byscore/bylex][rev] [limit偏移量查看数量]
zlexcount key startString endString查看指定字符串区间内的成员数量
参考zrange key startString endString bylex删除指定字符串区间内的成员
zremrangebylex key startString endString删除指定字符串区间内的成员
参考zrange key startString endString bylex
zremrangebyscore key minScore maxScore删除指定分数区间内的成员
参考zrange key minScorcre maxScore byscore
zrank key string查看成员升序排名
从第0名开始
zrevrank key string查看成员降序排名
从第0名开始
zremrangebyrank key startRank endRank删除指定排名区间内的成员
从第O名开始,-n表示倒数第n名

遍历:

遍历整个数据库:

scan游标[match 格式][count游标][type指定类型]遍历一定数量的key
游标:开始遍历的位置,从0开始,
scan命令将返回遍历结束位置,如果返回0,说明已经遍历到了最后一个
match:指定key的格式,*为通配符
count:指定遍历结束的游标,默认为10
type:指定遍历的类型

特定键值对的遍历:

hscan key游标[match格式][count游标]遍历指定散列表中的字段与值
sscan key游标[match 格式][count 游标]遍历指定集合中的成员
zscan key游标[match格式][count游标]遍历指定有序集合中的成员与分数

事务

基本操作:

multi开启⼀个事务
exec执⾏事务
执⾏前发现错误将⽆法执⾏
执⾏中发现错误只能跳过错误的⼀步
discard回滚事务

监视:

watch key1 [key2 …]按key开始监视键值对
需要在事务开启前开启
如果被监视的键值对在事务exec之前被事务之外的操作改动,事务将被discard
unwatch停⽌监视
exec或discard会⾃动调⽤unwatch
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值