PHPackages                             lysice/laravel-visit - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. lysice/laravel-visit

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

lysice/laravel-visit
====================

a visit tool package for blog.support sync or async mode

v0.3(3y ago)0284MITPHPPHP &gt;=7.0

Since May 13Pushed 3y ago1 watchersCompare

[ Source](https://github.com/Lysice/laravel-visit)[ Packagist](https://packagist.org/packages/lysice/laravel-visit)[ RSS](/packages/lysice-laravel-visit/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (1)Versions (4)Used By (0)

### 访问缓存方案扩展包

[](#访问缓存方案扩展包)

#### 原理

[](#原理)

DB模式:

- 1.浏览量会以 $prefix.$id-&gt;viewCount形式以string数据类型存储在redis中。
- 2.为了便于同步今日增量 本插件会将今日访问过的文章等实体id存储在set中。使用定时命令将增量数据同步到后台数据库或接口中。
- 3.为了控制缓存浏览量的实体总数量 避免总数量过大导致内存溢出 因此我们需要一个管理策略。本插件采用lru机制, 在将实体的浏览量存储起来时 需要将文章id 时间存储在zset中。当有新的文章id被访问 则检测当前zset的总数。若超出我们设置的阈值(config中的view\_key\_limit\_count), 则按照比例(view\_key\_limit\_prob)裁剪。

#### 使用方法

[](#使用方法)

- 1.引入

```
composer require lysice/laravel-visit =v

```

- 2.发布配置文件与数据库迁移文件

```
php artisan vendor:publish 选择 VisitServiceProvider

```

配置文件选项解析:

```
    // 浏览量缓存在Redis 此处配置的是visit 使用的redis的配置
    'host' => env('LV_HOST'),
    'database' => env('LV_DATABASE'),
    'port' => env('LV_PORT'),
    'password' => env('LV_PASSWORD'),

    // 记录所有文章的zset lru使用
    'view_key' => env('LV_VIEW_KEY', 'view_key_'),
    // zset缓存的阈值
    'view_key_limit_count' => env('LV_VIEW_KEY_LIMIT_COUNT', 10000),
    // zset缓存的清除比例 当超过view_key_limit_count的`view_key_limit_prob` 则执行清除操作
    'view_key_limit_prob' => env('LV_VIEW_KEY_LIMIT_PROB', 0.8),
    // 业务侧需要支持的类型
    'type' => [
        // example:
//        [
//            'prefix' => 's:',
//            'type' => 'topic'
//        ]
    ],

    // 插件模式 可选 db request
    'mode' => 'db',
    // db模式下 缓存表的名字
    'table' => env('LV_TABLE', ''),

```

- 3.如果你想使用DB模式 则设置好table名后 运行迁移命令

```
php artisan migrate

```

- 4.给文章添加逻辑

```
VisitService::getViewCount($getViewCount, $id,  $increase, $prefix);
方法需要4个参数
$getViewCount: 从后台获取到的浏览量 若无可直接设置为0
$id 文章id
$increase 文章浏览一次的增量 默认为1
$prefix: 浏览量缓存在redis中 key的前缀 用于与其他实体做区分.

```

- 5.配置定时任务 定时把本地缓存的数据从redis同步到数据库表中

```
参数自己设置即可
$schedule->command('view:syncToDb')->daily()->at('01:00');

```

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~9 days

Total

2

Last Release

1450d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6f077a192556cd9c34d866d3a65c0e4ba9d7f3b06403e431f58fd975ac3b7ed9?d=identicon)[Lysice](/maintainers/Lysice)

---

Top Contributors

[![Lysice](https://avatars.githubusercontent.com/u/17869820?v=4)](https://github.com/Lysice "Lysice (15 commits)")

### Embed Badge

![Health badge](/badges/lysice-laravel-visit/health.svg)

```
[![Health](https://phpackages.com/badges/lysice-laravel-visit/health.svg)](https://phpackages.com/packages/lysice-laravel-visit)
```

###  Alternatives

[grumpydictator/firefly-iii

Firefly III: a personal finances manager.

22.8k69.3k](/packages/grumpydictator-firefly-iii)[blair2004/nexopos

The Free Modern Point Of Sale System build with Laravel, TailwindCSS and Vue.js.

1.2k2.3k](/packages/blair2004-nexopos)[php-junior/laravel-video-chat

Laravel Video Chat using Socket.IO and WebRTC

82018.1k](/packages/php-junior-laravel-video-chat)[vcian/pulse-active-sessions

A Laravel Pulse card to show active user session.

11469.2k](/packages/vcian-pulse-active-sessions)[splitsoftware/split-sdk-php

Split SDK for PHP

161.3M2](/packages/splitsoftware-split-sdk-php)[vwo/vwo-php-sdk

VWO server side sdk

12166.4k](/packages/vwo-vwo-php-sdk)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
