Redis学习笔记一

Redis入门

什么是Redis(Remote Dictionary Server)?

  • C语言编写的开源的高性能非关系型数据库(NoSQL)
  • Redis除了做缓存还经常用来做分布式锁,甚至是消息队列。
  • 默认是16个库(0-15,默认使用第一个db0)
安装
  • 安装路径
/Users/mac/java_tools/redis-6.0.9/ 
  • 安装路径src下:

./redis-benchmark //用于进行redis性能测试的工具
./redis-check-dump //用于修复出问题的dump.rdb文件
./redis-cli //redis的客户端
./redis-server //redis的服务端
./redis-check-aof //用于修复出问题的AOF文件
./redis-sentinel //用于集群管理

  • 安装路径bin下:

redis-server 启动redis服务器端
redis-cli 启动redis客户端(redis-cli --raw 解决中文显示乱码问题)

缓存的处理流程

缓存查数流程

redis的特点:
  • 更丰富的数据类型
  • 单机与分布式
  • 功能丰富:持久化机制、过期策略、淘汰机制
  • 支持多种编程语言
  • 高可用、高并发、集群。

Redis常用数据结构

  • redis是一种高级的key:value存储系统,其value支持8种数据结构,常用的有五种(键的类型只能为字符串,值支持5种数据类型:字符串、列表、集合、散列表、有序集合。)还有:Hyperloglog、Geo、Streams

1、String

  • 常用命令:set、get(mset、mget)、strlen、exists、incr(incrby)、decr(decrby)、setex、append 、getrange、del、
  • 应用场景:需要计数的场景(用户的访问次数、热点文章的点赞转发数)
基本操作:
127.0.0.1:6379> set mystr value # 设置k-v对
OK
127.0.0.1:6379> get mystr# 获取mystr
value
127.0.0.1:6379> exists mystr #是否存在
1
127.0.0.1:6379> strlen mystr# key锁存储数据的长度
5
127.0.0.1:6379> append mystr 123 #追加
8
127.0.0.1:6379> get mystr
value123
127.0.0.1:6379> getrange mystr 0 6 #获取指定范围的字符
value12
127.0.0.1:6379> del mystr# 删除某个key的值
1
127.0.0.1:6379> get mystr


# 批量操作
127.0.0.1:6379> mset key1 value1 key2 value2  #批量设置值
OK
127.0.0.1:6379> mget key1 key2# 批量获取值
value1
value2
  • 计时器(value字符串为整数时)
127.0.0.1:6379> set mycount 1# 设置值
OK
127.0.0.1:6379> incr mycount# 将mycount中存储的数字值增加1
2
127.0.0.1:6379> incr mycount
3
127.0.0.1:6379> get mycount
3
127.0.0.1:6379> decr mycount# 将mycount中存储的数字值减少1
2
127.0.0.1:6379> get mycount
2
127.0.0.1:6379> incrby mycount 100# 一次增100
102
127.0.0.1:6379> get mycount
102
127.0.0.1:6379> decrby mycount 100# 一次减100
2
127.0.0.1:6379> get mycount
2
#浮点型
127.0.0.1:6379> set f 3.3
OK
127.0.0.1:6379> get f
3.3
127.0.0.1:6379> incrbyfloat f 6.6
9.9
127.0.0.1:6379> get f
9.9

2、Hash

  • 常用命令:

为什么Redis不支持回滚?

  • 只有当被调用的Redis命令语法错误时候,这条命令才会执行失败(在将这个命令放入事务队列期间,Redis能够发现此类问题),或者对某个键执行不符合其数据类型的操作。实际上这就意味着只有程序错误才会导致Redis命令执行失败,这种错误很有可能在程序开发期间发现,一般很少在生产环境发现。
  • Redis已经在系统内部进行功能简化,这样可以确保更快的运行操作,因此Redis不需要事务回滚能力。

未完待续~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

benboerdong

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

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

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

打赏作者

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

抵扣说明:

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

余额充值