当前位置: 首页 > news >正文

社区网站源码职业培训机构管理系统

社区网站源码,职业培训机构管理系统,c 做的web网站怎么发布,温县住房和城乡建设局网站Redis是什么? Redis是一个数据库,是一个跨平台的非关系型数据库,Redis完全开源,遵守BSD协议。它通过键值对(Key-Value)的形式存储数据。 与传统数据库不同的是 Redis 的数据是存在内存中的 ,也就是它是内存数据库&am…

Redis是什么?

Redis是一个数据库,是一个跨平台的非关系型数据库,Redis完全开源,遵守BSD协议。它通过键值对(Key-Value)的形式存储数据。

与传统数据库不同的是 Redis 的数据是存在内存中的 ,也就是它是内存数据库,所以读写速度非常快,因此 Redis 被广泛应用于缓存方向。

它与mysql数据库有什么区别?

redis通过键值对(Key-Value)的形式存储数据,mysql使用B+树索引结构来组织数据,通过表格的概念来组织和存储数据。

redis通常将数据存储在内存中,mysql通常将数据存储在磁盘上,因此redis要远大于mysql的读写速度。

redis默认情况下是单线程的,mysql是多线程的。

redis通过RDB(快照)和AOF(追加日志)两种机制实现数据持久化。(RDB通过定期将数据快照保存到磁盘上,AOF则将每个写操作追加到日志文件中)。mysql使用事务日志来记录和复制数据更改,同时支持事务回滚和故障恢复。

什么时候会用到Redis?

1.用redis做缓存,当数据量非常庞大、查询频繁时,如购物秒杀,mysql数据库的压力就会非常大。用redis做缓存就是为了减少数据库的压力。redis在内存中,有非常高的性能。

2.不需要做持久化的数据。如验证码,验证码只需要在几分钟内有效,假设存入到mysql,既占用了地方又浪费了时间。

3.实时统计。由于Redis的高速读写能力,它经常被用于实时统计和计数应用,如在线用户数统计、点赞/收藏数等。通过Redis提供的原子计数操作,可以方便地进行实时的增加和查询。

4.分布式锁。redis的原子操作和分布式特性可以实现分布式锁。

Redis的数据结构

1.String

字符串类型,可以包含任何数据,最大可以是512MB,字符串在创建后,如果存储容量不够,就会进行扩容,当字符串的容量小于1mb时,就会执行加倍扩容,当容量大于1MB时,则每次多增加1MB。

常用指令
set name zhencong   --存放字符串键值对
mset name zhencong age 18 --批量存放键值对
SETNX name zhencong  --如果不存在key为name,那么就设置value(分布式锁的原理)
get name   -- 获取key
mget name age  --批量获取key
DEL key -- 删除key
expire key 60 --设置过期时间,单位为秒
INCR key -- 将key中存储的数字加1
DECR key -- 将key中存储的数字减1
INCRBY key 2  --将key中存储的值都加上2
DECRBY key 2 --将key中存储的值都减去2

使用场景

1,不需要持久化的数据或者频繁更新的数据,比如验证码,点赞数

2,对象缓存:可以通过序列化工具类,来缓存java对象,比如将某个对象序列化为json,需要用的时候再取出来,反序列化。

3,实现分布式锁,(使用分布式锁时一定要设置过期时间,防止不能释放锁,造成死锁)

4,可以用incr,decr来实现点赞数

2.hash

常用指令
hset hash name zhencong --设置值,
hget hash name  -- 获取值
hmset hash name zhencong age 18 --批量设置
hmget hash name age --批量获取
hgetall hash 获取key的所有值
hkeys hash 获取hashmap中所有的key
hvals hash 获取hashmap中所有的value

使用场景

可以用于存储系统中对象的数据。(从图中可以看出很像java中的类对象,对象jilit 的sex属性是男 age属性是21)

3.List

redis的list是按插入顺序排序的,可以头插或者尾插,是一个双向链表,对两端的操作性能会比较高,对中间节点的操作性能相对来说较差(因为得通过指针对遍历对应的节点)。可以通过这里的List来实现数据结构的队列和栈。

常用指令
rpush myList value1 --向 list 的头部(右边)添加元素
rpush myList value2 value3 --向list的头部(最右边)添加多个元素
lpop myList # 将 list的尾部(最左边)元素取出
rpop myList2 value1 --尾插

队列

使用场景

可以实现栈和队列

4.Set

redis的set,可以自动去重。

常用指令
SADD key member [member ...] --向集合key中添加一个或多个member元素
SMEMBERS key --返回集合key中的所有元素
SISMEMBER key member --判断member元素是否是集合key的成员,返回1表示是成员,返回0表示不是成员
SCARD key --返回集合key的基数(元素个数)
SREM key member [member ...] --从集合key中移除一个或多个member元素
SDIFF key [key ...] --返回所有给定集合的差集,即在第一个集合中但不在其他集合中的元素。
SINTER key [key ...] --返回所有给定集合的交集,即同时存在于所有集合中的元素。
SUNION key [key ...] --返回所有给定集合的并集,即包含所有集合中的元素。
使用场景

1.对数据去重。

2.在线状态,Set可以用于存储在线用户的信息。

3.可以用来计算多个数据源的交集、并集、差集(共同好友、社交网络等)。

5.SortedSet

与Set很像,但SortedSet里面的每个节点都关联了一个权重,用来排序。

常用指令

zadd,zcard,zscore,zrange,zrevrange,zrem 等

zadd myZset 3.0 value1 # 添加元素到 sorted set 中 3.0 为权重
(integer) 1
zadd myZset 2.0 value2 1.0 value3 # 一次添加多个元素
(integer) 2
zcard myZset # 查看 sorted set 中的元素数量
(integer) 3
zscore myZset value1 # 查看某个 value 的权重
"3"
zrange  myZset 0 -1 # 顺序输出某个范围区间的元素,0 -1 表示输出所有元素
1) "value3"
2) "value2"
3) "value1"
zrange  myZset 0 1 # 顺序输出某个范围区间的元素,0 为 start  1 为 stop
1) "value3"
2) "value2"
zrevrange  myZset 0 1 # 逆序输出某个范围区间的元素,0 为 start  1 为 stop
1) "value1"
2) "value2"
使用场景

直播系统的实时排行榜

6.Geospatial

redis提供了经纬度的相关操作。可以表示一个区域的二维坐标。

使用场景

可以用来计算距离最近的门店

http://www.hkea.cn/news/778993/

相关文章:

  • 做游戏网站的需求分析创建app平台
  • 青岛胶南做网站的有多少seo商学院
  • 二月网站建设南宁百度个人中心登录
  • 如何在相关网站免费做宣传广告免费建立个人网站官网
  • 做搜狗网站优化首自己建立网站步骤
  • 企业资质查询官方网站最好的小说网站排名
  • 乐平网站设计北京互联网公司
  • 朝阳企业网站建设方案费用郑州网络营销学校
  • 建站行业发展百度广告代运营
  • 如何做积分商城网站鸡西seo顾问
  • p2p网站开发文档免费b站软件下载
  • 有没有做q版头像的网站今天百度数据
  • wordpress页面修改插件seo顾问阿亮
  • 政府门户网站建设标准国际婚恋网站排名
  • 上海青浦网站建设郑州靠谱seo电话
  • 网站建设怎么样seo专家招聘
  • 在网盘上怎么做自己的网站整站优化推广
  • php建设网站实训百度搜索引擎的总结
  • 怎么在360自己做网站重庆seo排名收费
  • 外贸网站建设浩森宇特教育培训报名
  • 网站开发价目表深圳市前十的互联网推广公司
  • php做视频直播网站关键词竞价广告
  • 重庆怎么站seo深圳网络推广团队
  • 自学软件网站开发网络推广怎样做
  • 最新版的wordpress怎么添加特征图优化关键词的作用
  • 深圳做网站google推广网络营销和传统营销的区别和联系
  • 专业做网站的顺德公司网络推广怎么收费
  • php商城网站建设多少钱天津百度seo排名优化
  • 注册网站免费注册insseo关键词优化推广哪家好
  • 深圳房地产网站开发常见的网络营销工具有哪些