Redis7

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Redis 版,经济版 1GB 1个月
简介: Redis7

一、安装和坑排除

image.png

1、启动服务端

redis-server /myredis/redis7.conf

image.png

2、启动客户端

redis-cli -a yjy219912ym -p 6379  //-a 后面接的是密码

image.png

3、查看redis进程

 ps -ef|grep redis

image.png

4、测试是否可以正常使用

image.png

5、redis端口号默认是6379

image.png

6、helloworld

image.png

7、关闭

1、客户端

quit

image.png

2、服务端

image.png

8、卸载

image.png

image.png

二、Redis十大数据类型

1、String

image.png

2、List

image.png

3、Hash

image.png

4、set

image.png

5、Zset

image.png

6、redis地理空间GEO

image.png

7、redis基数统计HyperLogLog

image.png

8、redis位图bitmap

image.png

9、redis位域bitfield

image.png

10、redis流stream

image.png

三、十大数据类型详解

keys *    //当前库的所有key
exists key      //判断某个key是否存在
type key        //查看你的key是什么类型
del key         //删除指定的key数据
unlink key      //非阻塞删除,仅仅将keys从keyspace元数据中删除,没真正的删除会在后续异步中操作
ttl key         // 查看还有多少秒过期 -1表示永不过期 -2 表示已过期
expire key 秒    // 给key设置过期时间
move key dbindex [0-15]   // 将当前数据库的key移动到指定的数据库中  redis默认是有16个数据库的
select dbindex [0-15]   // 切换数据库[0-15],默认为0
dbsize      // 查看当前数据库key的数量
flushdb           // 清空当前库
flushall    // 清空16个数据库 慎用


命令不区分大小写,而key的值是区分大小写的

help @+数据类型 会出现命令提示 比如 help @string

1、String

string是redis最基本的类型,一个key对应一个value。

string类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象 。

string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

image.png

set key value ex 20   // 设置值 20秒过期
get key   // 获得对应的值

image.png

image.png

同时设置/获取多个键值


MSET [key1] [value1] [key2] [value2] [key3] [value3]  // 同时设置一个或多个键值对
MGET [key1] [key2] [key3]  // 同时获取多个key的值
MSETNX [key1] [value1] [key2] [value2]  // 同时设置一个或多个 key-value 对  必须保证key都不存在才能成功

image.png

获取指定区间


GETRANGE [key] 0 -1  // 获取这个key的值的全部
GETRANGE [key] 0 2   // 获取这个key的值索引0到索引2之间的值
SETRANGE [key] 1 xxx  // 设置指定区间范围内的值

获取字符串长度和内容相加

STRLEN [key]        // 获取key对应的值的长度
APPEND [key] [vale]   // 添加字符串内容

分布式锁


setex [key] [过期时间] [value]  // 设置带过期时间的key,动态设置
setex [key] [value] // 只有在 key 不存在时设置 key 的值。
getset(先get再set)
getset [key] [value]  // 给定 key 的值设为 value ,并返回 key 的旧值

image.png

image.png

2、list

image.png

lpush [key] [value] ...  // 往 列表头部(左边)放入元素
Rpush [key] [value] ...  // 往 列表(右边)放入元素
lrange [key] 0 -1      // 从左边开始遍历列表  只能从左边遍历
lpop [key]           // 最左边的出栈 也就是lrange遍历的第一个
rpop [key]           // 最右边的出栈 也就是lrange遍历的最后一个
lindex [key] [index]  // 通过索引值获取值
llen [key]    // 获得元素个数
lrem [key] [num] [value]  // 从左往右删除 num个值为 value的值
lrem [key] 0 [value]  // 从左往右删除所有值为value的值
ltrim [key] [开始] [结束] // 截取指定范围的值后再赋给[key],也就是删除这个区间外的值
RPOPLPUSH [key1] [key2]  //移除列表的最后一个元素,并将该元素添加到另一个列表的第一个并返回
lset [key] [index] [value]   //将key的第 index 个索引值改为value
linsert [key] before/after [value1] [value2] // 在list某个已有值的前后再添加具体值

image.png

image.png

image.png

3、hash

相当于Map<String,Map<Object,Object>

hlen   // 获取在某个key内的全部数量
hexists [key] [k1]   // 看key中是否有k1这个键
hkeys [key]    // 获取key里面的所有key
hvals [key]    // 获取key里面的所有value
hincrby [key] k1 [num] // key里面k1的值增长num 整数
hincrbyfloat [key] k1 [num] // key里面k1的值增长num 小数
hsetnx [key] k1 [value] // 不存在赋值,存在了无效\

应用场景
早期购物车设计,基本不用了,中小厂可用

image.png

image.png

4、set

单值多value,无重复
常用的

SADD key member ...   // 添加元素
SMEMBERS key      // 遍历集合中所有元素
SISMEMBER key member    // 判断元素是否在集合中
SREM key member ...     // 删除元素
SCARD  key          // 获取集合长度
SRANDMEMBER key m   // 从set集合里面随机取出m个    如果超过最大数量就全部取出   如果写的值是负数,比如-3 ,表示需要取出3个,但是可能会有重复值    不会删除
SPOP key m   // 从集合中随即弹出一个元素  出一个删一个
SMOVE key1 key2 在key1里已存在的某个值  // 将key1的已存在的某个值赋给key2

集合运算

SDIFF keyA keyB     // A - B  属于A但不属于B的元素构成的集合
SUNION keyA keyB    // A U B  属于A或者属于B的元素合并后的
SINTER keyA keyB    // A ∩ B  属于A同时属于B
SINTERCARD numkeys keyA keyB [LIMIT limit] // 不返回结果集,只返回结果的基数

image.png

image.png

image.png

image.png

5、Zset

注意:Zset和set的区别,就是在set的基础上加了一个score分数值。

  • set k1 v1 v2 v3
  • Zset k1 score1 v1 score2 v2

常用的

ZADD key score member [ score member ] // 添加元素
ZRANGE key start stop [WITHSCORES] // 返回元素分数从小到大的顺序   返回索引从start到stop之间的所有元素
ZREVRANGE key 0 - 1 [WITHSCORES]   // 反序
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] // 获取指定分数范围的元素  (min,max) 不包含   limit是返回限制,返回多少个 
ZSCORE key member     // 获取元素的分数
ZCARD key             // 获取集合中元素的数量
ZREM key 某score下对应的value值   // 删除元素
ZINCRBY key increment member    // 增加某个元素的分数
ZCOUNT key min max     // 获得指定分数范围内的元素个数
ZRANK key values值     // 获得下标值
ZREVRANK key values    // 逆序获得下标值、

ZMPOP numkeys key [key …] <MIN | MAX> [COUNT count]

  • 弹出元素 会删除
  • numkeys 表示几个key
  • <MIN | MAX> 小 | 大
  • [COUNT count] count num 弹出num个
  • image.png
  • image.png
  • image.png
  • image.png
  • image.png
  • image.png
  • image.png
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
缓存 NoSQL Redis
Redis雪崩问题
Redis雪崩问题
38 1
|
2月前
|
存储 NoSQL 测试技术
【Redis】redis为什么快
【Redis】redis为什么快
|
3天前
|
SQL NoSQL Redis
|
2月前
|
存储 NoSQL Go
Redis 双端链表
Redis 双端链表
32 0
|
11月前
|
缓存 NoSQL 关系型数据库
redis-1
redis-1
37 1
|
10月前
|
NoSQL Redis
|
11月前
|
运维 NoSQL Shell
redis-2
redis-2
59 0
|
存储 缓存 监控
Redis应用问题解决
key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会压到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。
Redis应用问题解决
|
NoSQL Java API
redis结合sringboot使用
redis的api使用
182 0