关于redis:redis安装与基本使用

3次阅读

共计 3450 个字符,预计需要花费 9 分钟才能阅读完成。

redis 装置与根本应用

一、redis 在 Ubuntu 中的装置

1、sudo apt install redis 或 sudo apt install redis-server

2、将 /etc/redis/redis.conf 文件挪动到一个自主目录中(目标是为了后续集群的部署,也不便对配置文件批改出错时可能重新配置)

例如:我搁置在了 /root/yjnconfig 目录中

3、批改一些配置信息:

将挪动后的配置文件关上,批改如下配置信息

3、执行命令 redis-server /root/yjnconfig/redis.conf 以开启咱们复制后的 redis

4、执行 redis-cli 以关上客户端

在客户端中应用 ping 命令测试连通性,返回 PONG 即为失常

5、还能够应用 ps -ef|grep redis 命令查看是否启动胜利

6、退出时在 redis-cli 中输出 shutdown,接着输出 exit 退出

此时,能够看到过程中曾经没有了 redis

7、应用 redis-benchmark 进行压力测试

二、redis 常用命令

1、select [num] 抉择号码为 num 的数据库(共 16 个数据库,从 0 开始)

例 select 1

2、set [name] [value] 设置一个字段名为[name],值为[value]

例 set name alpaca 设置一个字段名为 name,值为 alpaca

3、get [name] 获取字段名为 [name] 的值

例 get name

4、exists [name] 判断字段 [name] 是否存在

例 exists name

5、keys * 列出以后数据库所有 字段

6、move [name] 1 将以后数据库中的字段 name 挪动到数据库 1 中

7、expire [name] [second] 设置 name 字段的过期工夫为 second 秒

8、应用 ttl [name] 查看字段残余的工夫,- 2 代表没了

9、应用 type [name]查看字段类型

10、清空数据库

flushdb:清空以后数据库

flushall:清空所有数据库

三、redis 根本类型

1、String

应用场景:计数器、统计多单位数量[name]:[id]:[field]、粉丝数、对象缓存存储

(1)append [name] “string” 追加在 name 字段后一个值

(2)strlen [name] 获取字段值长度


(3)incr [name] 字段值自增 1(用于统计文章浏览量)

(4)decr [name] 字段值自减 1

(5)反对步长的自增自减


(6)字符串截取 getrange [name] [start] [end] start 和 end 均蕴含

(7)获取全副的字符串 getrange [name] [start] [end] end 为 -1

(8)字符串替换 setrange [name] [start] [value]


(9)setex [name] [second] [value] 设置过期的工夫

(10) setnx [name] [value] 如果不存在该字段才进行赋值(罕用于分布式锁)


(11) mset ([name] [value] ……) 批量赋值

(12) mget ([name] ……) 批量获取

(13) msetnx ([name] [value] ……) 在不存在的状况下批量赋值

只有都不存在时才会执行胜利,如果一部分存在 一部分不存在则执行失败(原子性操作)


(14) 对象

set user:1 {name:zhangsan,age:3} 设置一个 user:1 对象 值为 json 字符来保留对象

更奇妙的设计 [name]:[id]:[field]

mset user:1:name zhangsan user:1:age 2

mget user:1:name user:1:age


(15) getset [name] [value] 组合命令:先 get 再 set,返回值为 set 之前的值

2、List

  • List 是一个链表,能够在结点的左右侧插入值
  • 如果 key 不存在,会创立新链表
  • 如果 key 存在,则会新增内容
  • 空链表代表不存在
  • 在两边插入或者改变值效率最高

(1)lpush [name] [value] 将 value 数据从左侧压入栈

(2)lrange [name] [start] [length] 取长度为 length 的所有值,从栈顶开始

(3)rpush [name] [value] 将 value 数据从右侧压入栈

(4)lpop [name] 左出栈

(5)rpop [name] 右出栈


(6) lindex [name] [index] 用下标获取数据

(7) llen [name] 获取列表长度


(8) lrem [name] [num] [value] 移除 name 列表中 num 个为 value 的元素,如果在多个雷同元素中只移出一个,则被移除的程序是从左到右

(9)ltrim [name] [start] [end] 截取 start 到 end 之间的 shujv,其余数据移出

(10)rpoplpush [destination] 将原列表从右侧弹出有一个数据放在一个新列表的左侧


(11)lset [name] [start] [value] 当列表存在时,应用 lset 在指定地位设置元素

(12)插入:linsert [name] before|after [pivot] [value] 在某一个基准前或后插入值

3、set

set 值不能反复

利用:

  • 独特关注的好友
  • 共同爱好

(1)sadd [name] [value] 增加值

(2)smembers [name] 获取全副值

(3)sismember [name] [value] 查看元素是否存在


(4)scard [name] 获取 set 汇合元素的个数


(5)srem [name] [value] 移除指定元素


(6)srandmember [name] [num] 随机抽取 num 个数据

(7)spop [name] 随机移除一个元素

(8)smove [destination] [value] 将 source 汇合中的元素 value 挪动到 destination 汇合

(9)差集 sdiff 交加 sinter 并集 sunion

4、Hash

map 汇合

  • 适宜数据过程变动
  • 适宜存储对象

(1)hset [汇合名] [键] [值] (hmset [汇合名] [键] [值])

(2)hget [汇合名] [键] (hmget [汇合名] [键])

(3)hgetall [name] 获取所有键值对

(4)hdel [name] [key] 删除一个 map

(5)hlen [name] 获取长度

(6)hexists [name] [key] 判断是否存在

(7)只获取 key 或 value

(8)设置自增 不存在时设置值

5、Zset 有序汇合

依照权重排序

  • 班级成绩表
  • 工资表
  • 一般音讯、重要音讯(带权重)
  • 排行榜

(1)zadd [name] [score] [member]

(2)zrangebyscore [name] [最小值] [最大值]

(3)zrange [name] [start] [end] zrevrange

(4)zrem [name] [member] 移除有序汇合中的指定元素

(5)zcard [name] 获取长度


(6)zcount [name] [start] [end] 统计满足区间值的个数

6、geospatical 地理位置

实现原理是 ZSet 汇合,因而能够应用 ZSet 的命令来操作,比方 Zrange Zrem

用处:

  • 两地间隔
  • 左近的人

(1)geoadd 名称 经度(-180,+180)纬度(-85.05,+85.05)名称

(2)geopos 获取指定城市的经纬度

(3)geodist 计算两个城市的直线间隔

(4)georadius 以给定经纬度为核心,找出某一半径内的元素

110 30 模仿本身经纬度 1000 为半径 km 为单位

左近的人

(5)georadiusbymember 依据城市定位找到周边城市

(6)geohash 返回城市的经纬度的字符串示意(11 位)

7、Hyperloglog 网站访问量计算(有错误率)

如果谋求无误,能够应用 set 或自定义数据结构

基数

A {1,3,5,7,8,7}

B {1,3,5,7,8}

基数:不反复的元素 = 5 能够承受误差

8、Bitmaps

位存储

  • 统计疫情感化人数
  • 统计用户信息
  • 打卡
  • 活跃度
  • 登陆状况

365 天 = 365bit 节俭内存

比方:记录周一到周日的打卡

周一 0 打卡

周二 1 未打卡

周三 2 未打卡

查看某一天是否打卡

统计打卡的天数

欢送指出谬误和有余~

转载请注明出处!

本篇公布在以下博客或网站:

双鱼座羊驼 – 知乎 (zhihu.com)

pisces365 的博客_CSDN 博客

双鱼座羊驼 – SegmentFault 思否

双鱼座羊驼 的个人主页 – 动静 – 掘金 (juejin.cn)

双鱼座羊驼 – 博客园 (cnblogs.com)

正文完
 0