统计访问次数

2006年01月07日 20:26:00

(一).示例图片效果

(二).代码

>html<
>head<
>title<统计访问次数>/title<
>/head<
>body<
>SCRIPT language="JavaScript"<
function getcookie(name)
{
var start1 = document.cookie.indexOf(name + "=");
if (start1== -1) //找不到
{
alert("欢迎访问!");
return null;
}
else
{
var start=document.cookie.indexOf("=",start1)+1;
var end = document.cookie.indexOf(";",start);
if (end==-1)
{
end=document.cookie.length;
}
var value1=unescape(document.cookie.substring(start,end));
if (value1==null)
{
return null;
}
else
{
value2=parseInt(value1)+1
alert("第 "+value2+" 次光临本页面!");
return value1;
}
}
}
function setcookie(name,value)
{
var argv=setcookie.arguments;
var argc=setcookie.arguments.length;
var expires=(2>argc)?argv[2]:"";
var path=(3>argc)?argv[3]:"";
document.cookie=name+"="+escape(value)+"; expires="+expires.toGMTString()+"; path="+path;
}
function resetcounts(name)
{
comes=0;
setcookie("comes",comes,expdate,"/");
location.reload();
}
>/script<

>script language="JavaScript"<
var expdate=new Date();
var comes;
expdate.setYear(expdate.getYear()+1);
comes=getcookie("comes")
if (comes==null)
comes=1;
else
{
comes++;
}
setcookie("comes",comes,expdate,"/");
>/script<
>/body<
>/html<



Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=573067


### 使用 Redis 统计访问次数的方法 Redis 提供了高效的键值存储机制以及丰富的数据结构支持,因此可以轻松实现访问次数统计功能。以下是具体实现方式: #### 1. 利用 INCR 命令进行原子递增操作 Redis 的 `INCR` 命令能够对某个键的数值执行原子性的递增操作。每当有新的请求到达时,可以通过调用该命令更新对应的键值[^1]。 示例代码如下: ```java // Java 示例:通过 Jedis 客户端连接 Redis 并增加访问次数 Jedis jedis = new Jedis("localhost", 6379); String key = "page_view_count"; long currentCount = jedis.incr(key); // 对指定键进行自增操作 System.out.println("当前访问次数:" + currentCount); ``` #### 2. 结合 Spring Boot 和 AOP 实现自动化统计 在实际项目中,通常会结合框架如 Spring Boot 来简化开发流程。通过引入面向切面编程(AOP),可以在不修改业务逻辑的情况下自动完成访问次数统计[^4]。 ##### 主要步骤: - **导入依赖** 添加 Redis 支持的相关 Maven 或 Gradle 依赖项。 - **编写切面类** 创建一个切面,在目标方法被调用前或后触发访问统计逻辑。 - **开启 AOP 功能** 在配置文件中启用 AspectJ 自动代理功能。 - **测试接口** 调用受保护的服务方法,验证统计数据是否正常增长。 #### 3. HyperLogLog 数据结构的应用场景 如果需要估算独立访客数而非总访问,则可考虑使用 Redis 中的 HyperLogLog 数据结构。它是一种概率算法,适合处理大规模集合近似计算问题[^3]。 下面是一个基于 HyperLogLog 的用户签到案例片段: ```java @Test void testHyperLogLog() { String[] users = new String[100]; for (int i = 0; i < 1000000; i++) { int index = i % 100; users[index] = "user_" + i; if ((i + 1) % 1000 == 0) { // 模拟批写入 redisTemplate.opsForHyperLogLog().add("unique_visitors", users); } } long estimatedSize = redisTemplate.opsForHyperLogLog().size("unique_visitors"); System.out.println("估计的独特用户数:" + estimatedSize); } ``` 以上展示了如何利用不同技术手段达成精确或者粗略的流监控目的。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值