欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一、Redis快速入门

程序员文章站 2022-07-14 23:18:29
...

一、Redis是什么

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

  1. Redis软件安装在磁盘;
  2. Redis数据存储在内存;

二、快速理解Redis的使用

Redis是一种键值对(Key-Value)高性能缓存数据库,支持string、hash、list、set、zset类型存储。
就像JAVA的map键值对差不多,例如:

Map<String,String> map = new HashMap<>();
map.put("name","zhangsan");
map.get("name");

比如说,数据库有一张Order订单表,主键是orderid

orderid ordertime ordermoney orderstatus
1 2019-10-9 08:18:11 12 0
2 2019-10-9 08:28:22 12 0
3 2019-10-9 08:48:43 5 0

使用Redis如何存储数据呢?
Key:使用业务主键orderid:1
Value:{orderid:1,ordertime:2019-10-9 08:18:11,ordermoney:12}
存入Redis: set orderid:1 {orderid:1,ordertime:2019-10-9 08:18:11,ordermoney:12}

Redis命令参考
http://redisdoc.com/

三、Redis解决了什么问题

一、Redis快速入门
先从Redis缓存里查询数据,如果没有再到Mysql数据库里查询。

四、Redis特性

  1. 速度快
  2. 键值对的数据结构服务器
  3. 丰富的功能
  4. 简单稳定
  5. 持久化
  6. 主从复制
  7. 高可用和分布式转移
  8. 客户端语言多

五、Redis配置、启动、操作、关闭

可执行文件 作用
redis-server 启动redis
redis-cli redis命令行客户端
redis-benchmark 基准测试工具
redis-check-aof AOF持久化文件检测和修复工具
redis-check-dump RDB持久化文件检测和修复工具
redis-sentinel 启动哨兵
redis-trib cluster集群构建工具

启动Redis
./redis-server redis.conf &
连接Redis
./redis-cli -h 192.168.44.101 -p 6379 -a 123456
关闭Reids
./redis-cli -h 192.168.44.101 -p 6379 -a 123456 shutdown
操作Redis

select 0 //默认是0数据库,默认16个数据库,通过select切换数据库
flushall //不建议使用,清空所有的库


set age 23 ex 10 //10秒失效
get age //获取age值,存在返回value,不存在返回nil
ttl age //查询当前age的剩余时间
setnx name zhangsan //不存在键name时,返回1设置成功,存在返回0设置失败
mset age 13 name lisi sex boy //批量插入
mget country city address //批量获取


incr count //整数自增+1
decr count //整数自减-1
incrby count 2 //整数自增+2
decrby count 2 //整数自减-2
incrbyfloat count 1.1 //浮点数自增+1.1
decrbyfloat count 1.1 //浮点数自减-1.1

set name hello; append name world //追加值
set name hello; strlen name;//统计字符串长度,中文占三个字节
set name helloworld;getrange name 2 4 //截取字符串,返回llo


/////////////     HASH    ///////////////
hmset user:1 name zhangsan age 18 //hash存储
hgetall user:1 //获取hash指定键的所有值
hset user:1 age 19//可以修改字段值
hincrby user:1 age 1//年龄+1
hincrbyfloat user:1 number 1.1 //浮点型+1.1
hdel user:1 age //删除属性
hexists user:1 name //是否存在name,存在返回1,不存在返回0
hkeys user:1 //返回所有的key
hvals user:1 //返回所有的值

/////////////     List    ///////////////
lpush user:1 d //从左插入
rpush user:1 d //从右插入
lpop user:1 d //从左取值
rpop user:1 d //从右取值
lrange user:1 0 -1 //从左到右全部取出


/////////////     set    ///////////////
//保存多元素,与列表不一样的是不允许有重复元素,且集合是无序,一个集合
//最多可以保存2的32次方减1,除了支持增删改查,还支持集合交集、并集、差集
exists user //检查user键值是否存在
sadd user a b c //向user插入3个元素,返回3
sadd user a b //若再加入相同的元素,则重复无效,返回0
smembers user //获取user所有的元素,返回结果无序

srem user a //返回1,删除a元素

scard user //计算元素个数,返回2

sinter user:1:fav user:2:fav //计算共同爱好




/////////////     zset    ///////////////
//有序集合,常用于排行榜,不能有重复的成员
zadd user:1:zan 100 zhangsan //插入点赞数,返回操作成果数
zadd user:1 nx 100 zhangsan //键user:1必须不存在,主要用于添加
zadd user:1 xx incr 200 zhangsan //键user:1必须存在,主要用于修改,此时为300
zadd user:1 xx ch incr-299 zhangsan //返回结果1,300-299=1

zrange user:1 0 -1 withscores //查看点赞分数与成员名

zcard user:1 //计算成员个数

zrank user:1 zhangsan //正排序,返回名次 从0开始
zrevrank user:1 zhangsan //反排序,返回名次 从0开始

六、Redis全局命令

1. 查看所有键
keys * set hello world set user shangsan //不建议这么查,慢查询
2. 键总数
dbsize //如果存在大量键,线上禁止使用此指令
3. 检查键是否存在
exists key //存在返回1,不存在返回0
4. 删除键
del key //del hello user,返回删除键个数,如果键不存在,返回0
5. 键过期
expire key seconds //set name test expire name 10,表示10秒过期
ttl key //查看剩余的过期时间
6. 键的数据结构类型
type key //返回key的类型,键不存在返回none

七、重大版本

  1. 版本号第二位为奇数,为非稳定版本(2.7,、2.9、3.1)
  2. 第二位为偶数,为稳定版本(2.6、2.8、3.0)
  3. 当前技术版本是下一个稳定版本的开发版本,例如2.9是3.0的开发版本
相关标签: Redis快速入门