Redis学习笔记

Redis学习笔记

Redis是key-value(键值对)类型NoSQL(非关系型)数据库,它把原本存在硬盘上的数据转移到
内存中,利用内存的高性能来提高程序性能,同时也能持久化到硬盘;Redis常用于缓存,利用内存的高效提高程序的处理速度

特点

  • 速度快
  • 广泛语言的支持
  • 持久化
    • rdb(全量备份)
    • aof(日志更新)
  • 多种数据结构
  • 主从复制(多台redis服务器之间建立一种通讯的机制,可以让数据保持同步,无论连接哪一台服务器都可以提供相同的服务)
  • 分布式与高可用
    • 分布式:redis服务器可能会有多台,它并不要求强制放在同一个机房或局域网中,可能分布在全国各地彼此通过互联网进行通信,程序可以就近访问服务器,从而降低了网络传输所需要的时间
    • 高可用:随时打开随时可用

启动&关闭

在redis根目录下执行

# 启动redis
./src/redis-server redis.conf

# 关闭redis
./src/redis-cli shutdown

# 连接192.168.2.100服务器端口为6379,密码为123456的redis
./src/redis-cli -h 192.168.2.100 -p 6379 -a 123456

# 设置了密码 关闭redis

	# 先启动redis-cli客户端
	./src/redis-cli -p 6380
	
	# 输入密码
	auth admin
	
	# 关闭redis
	shutdown

# 启动redis-cli客户端
./src/redis-cli

# 启动redis-cli客户端(改了默认端口的命令)
./src/redis-cli -p 6380

# 如果设置了 requirepass 启动redius-cli需要输入密码
auth admin

常用配置

配置项示例说明
daemonizedaemonize yes是否启用后台运行,默认no
portport 6380设置端口号,默认6379
logfilelogfile “redis.log”设置日志文件
databasesdatabases 255设置redis数据库总量,默认16
dirdir ./设置数据文件存储目录
requirepassrequirepass admin设置使用密码
protected-modeprotected-mode yes是否开启保护模式,开启后只允许指定ip访问服务
bindbind 0.0.0.0代表所有ip的主机可以访问

数据类型

  • String - 字符串类型(String最大512MB,建议单个kv不超过100KB)
  • Hash - Hash类型(用于存储结构化数据)
  • List - 列表类型(List列表就是一系列字符串的“数组”,按插入顺序排序;最大长度为2的32次方-1,可以包含40亿个元素)
  • Set - 集合类型(是字符串的无序集合,集合成员是唯一的)
  • Zset - 有序集合类型(是字符串的有序集合,集合成员是唯一的,比Set多了一个分数,以分数来进行排序)

通用命令

命令示例说明
selectselect 15选择15号数据库
keyskeys na*根据Pattern表达式查询符合条件的key
dbsizedbsize返回key的总数
existsexists name检查key=name是否存在
expireexpire name 30设置key=hello在20秒后过期
ttlttl name查看key=name的过期剩余时间
typetype key返回key所存储的值的类型
deldel key当key存在时删除key

字符串命令

命令示例说明
getget name获取key=name的值
setset name mushan设置key=name的值为mushan
msetmset age 20 sex 男设置多个值 age=20,sex=男
mgetmget age sex获取多个值
setexsetex address 1 JiangXi设置address,值为JiangXi,过期时间为1秒
setnxsetnx address JiangXi当address不存在时设置值为JiangXi
deldel name删除key=name
incrincr agekey=age的值自增1
decrdecr agekey=age的值自减1
incrbyincr count 3key=count自增3
decrbydecr count 3key=count自减3

Hash命令

命令示例说明
hgethget emp:1 age获取hash中key=age的值
hsethset emp:1 age 23设置hash中age=23
hmsethmset emp:1 age 30 name kaka设置hash多个值
hmgethmget emp:1 age name获取hash多个值
hgetallhgetall emp:1获取hash所有值
hkeyshekeys emp:1获取所有字段
hvalshvals emp:1获取所有值
hdelhdel emp:1 age删除user:1的age
hexistshexists emp:1 name检查是否存在
hlenhlen emp:1获取指定长度

List命令

命令示例说明
rpushrpush listkey c b a右侧插入
lpushlpush listkey f e d左侧插入
rpoprpop listkey右侧弹出并返回最后一个元素
lpoplpop listkey左侧弹出并返回第一个元素
llenllen listkey获取长度
lrangelrange listkey 0 2获取0-2的值
lrangelrange listkey 0 -1获取所有
drpopdrpop listkey 10移除并返回最后一个元素,如果列表没有元素
会阻塞列表直到等待超时(10)秒或发现可弹出元素为止

Set命令

命令示例说明
saddsadd set a设置key=set,值为a
saddsadd set b c d设置key=set,值有b,c,d
smemberssmembers set获取key=set的所有值
scardscard set获取set集合的成员数
sinterrpush set1 set2获取两个集合中相同的元素(交集)
sunionsunion set1 set2将两个set集合合并一起返回(并集)
sdiffsdiff set1 set2返回set1有,set2没有的元素(差集)
sremsrem set a移除集合中一个,或多个成员

ZSet命令

命令示例说明
zaddzadd zset 100 a设置key=set,分数为100(值越小排越前),值为a
zaddzadd zset 101 b 102 c 103 d设置key=set,值为b,c,d
zrangezrange zset 0 -1返回zset集合所有元素
zrangezrange zset 0 -1 withscores返回zset集合所有元素(打印分数)
zrangebyscorezrangebyscore zset 100 102按分数来取zset分数100-102的值
zincrbyzincrby zset 20 a给指定成员加上分数,为20
zremzrem zset a移除有序集合中zset的a字段,可移除多个
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木杉鹿人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值