-
2020-03-16 10:27:41
目录
将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。
代码演示:
<template> <view> <button type="primary" @click="setStor">存储数据</button> </view> </template> <script> export default { methods: { setStor () { uni.setStorage({ key: 'id', data: 100, success () { console.log('存储成功') } }) } } } </script> <style> </style>
-
uni.setStorageSync
将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。
代码演示 :
<template> <view> <button type="primary" @click="setStor">存储数据</button> </view> </template> <script> export default { methods: { setStor () { uni.setStorageSync('id',100) } } } </script> <style> </style>
-
uni.getStorage
从本地缓存中异步获取指定 key 对应的内容。
代码演示 :
<template> <view> <button type="primary" @click="getStorage">获取数据</button> </view> </template> <script> export default { data () { return { id: '' } }, methods: { getStorage () { uni.getStorage({ key: 'id', success: res=>{ this.id = res.data } }) } } } </script>
-
uni.getStorageSync
从本地缓存中同步获取指定 key 对应的内容。
代码演示 :
<template> <view> <button type="primary" @click="getStorage">获取数据</button> </view> </template> <script> export default { methods: { getStorage () { const id = uni.getStorageSync('id') console.log(id) } } } </script>
-
uni.removeStorage
从本地缓存中异步移除指定 key。
代码演示 :
<template> <view> <button type="primary" @click="removeStorage">删除数据</button> </view> </template> <script> export default { methods: { removeStorage () { uni.removeStorage({ key: 'id', success: function () { console.log('删除成功') } }) } } } </script>
-
uni.removeStorageSync
从本地缓存中同步移除指定 key。
代码演示 :
<template> <view> <button type="primary" @click="removeStorage">删除数据</button> </view> </template> <script> export default { methods: { removeStorage () { uni.removeStorageSync('id') } } } </script>
本篇文章讲解uni-app中的数据缓存,若有什么地方不明确或某些位置不太懂得请在评论中指出,后期我会继续出更多的基础教学谢谢各位支持 ,谢谢大家
更多相关内容 -
-
在Spring Controller中将数据缓存到session
2021-02-27 19:25:52Servlet方案在Controller的方法的...springmvc会 自动把当前session对象注入这个参数,此后可以使用setAttribute(String key, Object value)将数据缓存到session,使用removeAttribute(Stringkey)将指定的数据从se...Servlet方案
在Controller的方法的参数列表中,添加一个javax.servlet.http.HttpSession类型的形参。spring mvc会 自动把当前session对象注入这个参数,此后可以使用setAttribute(String key, Object value)将数据缓存到session,使用removeAttribute( String key)将指定的数据从session缓存中移除。
1 packagecn.sinobest.jzpt.demo.login.web;2 importjavax.servlet.http.HttpSession;3 importorg.springframework.stereotype.Controller;4 importorg.springframework.ui.Model;5 importorg.springframework.web.bind.annotation.RequestMapping;6 /**
7 * 登陆相关Controller.
8 * H - HttpSession.9 *@authorlijinlong10 *11 */12 @Controller13 @RequestMapping("demo/h_login")14 public classHLoginController {15
16 @RequestMapping("/login")17 publicString login(Model model, String username, HttpSession session) {18 Logger.logger.debug("in HLoginController.login...");19 String currUsername = session.getAttribute("username") == null ? null
20 : session.getAttribute("username").toString();21 //尝试从session中获取username数据。
22
23 boolean usernameIsNull = username == null ||username.isEmpty();24 boolean currunIsNull = currUsername == null ||currUsername.isEmpty();25 if (usernameIsNull &&currunIsNull) {26 returnView.VIEW_LOGIN;27 }28
29 if (!usernameIsNull) {30 session.setAttribute("username", username);31 //将username缓存到session中。
32 }33 returnView.VIEW_LOGOUT;34 }35
36 /**
37 * 注销.38 *@parammodel39 *@paramsession40 *@return
41 */
42 @RequestMapping("/logout")43 publicString logout(Model model, HttpSession session) {44 Logger.logger.debug("in HLoginController.logout...");45 session.removeAttribute("username");46 //将username从session中移除。
47 returnView.VIEW_LOGIN;48 }49 }
LoginController.java
Spring方案
spring mvc提供了内嵌的支持方案:
将数据缓存到session
对Controller使用org.springframework.web.bind.annotation.SessionAttributes注解,可以将指定名称 或者 类型的数据,在model.addAttribute( String key, Object value)时,缓存到session中。
清除session中的数据
调用org.springframework.web.bind.support.SessionStatus实例的setComplete(),在方法的参数列表中声明SessionStatus类型的参数,会被自动注入。
1 packagecn.sinobest.jzpt.demo.login.web;2 importorg.springframework.stereotype.Controller;3 importorg.springframework.ui.Model;4 importorg.springframework.web.bind.annotation.ModelAttribute;5 importorg.springframework.web.bind.annotation.RequestMapping;6 importorg.springframework.web.bind.annotation.SessionAttributes;7 importorg.springframework.web.bind.support.SessionStatus;8 /**
9 * 登陆相关Controller.
10 * S - Spring Session.11 *@authorlijinlong12 *13 */14 @Controller15 @RequestMapping("demo/s_login")16 @SessionAttributes("username") //指定了key为username的数据,会被放入session中。
17 public classSLoginController {18 @RequestMapping("/login")19 publicString login(Model model, String username) {20 Logger.logger.debug("in SLoginController.login...");21 String currUsername = model.asMap().get("username") == null ? null
22 : model.asMap().get("username").toString();23 //尝试从session中获取username(spring mvc会自动把session中的数据装载到model中)。
24
25 boolean usernameIsNull = username == null ||username.isEmpty();26 boolean currunIsNull = currUsername == null ||currUsername.isEmpty();27 if (usernameIsNull &&currunIsNull) {28 returnView.VIEW_LOGIN;29 }30
31 if (!usernameIsNull) {32 model.addAttribute("username", username);33 //username会被放入session中(key和@SessionAttributes的参数匹配)。
34 }35 returnView.VIEW_LOGOUT;36 }37
38 @RequestMapping("/logout")39 publicString logout(SessionStatus status,40 @ModelAttribute("username") String currUsername) {41 Logger.logger.debug("in SLoginController.logout...");42 Logger.logger.debug("current user is:" +currUsername);43 status.setComplete();44 //清除session中的attribute
45 returnView.VIEW_LOGIN;46 }47 }
LoginController
SessionAttributes的使用方法
匹配单一的key
@SessionAttributes("username") //匹配key=username的数据
匹配key数组
@SessionAttributes({"username", "password"}) //匹配key=username或者password的数据
匹配单一类
@SessionAttributes(types=String.class) //匹配String类型的数据
匹配类数组
@SessionAttributes(types={String.class, List.class}) //匹配String类型或List类型的数据
混合匹配
@SessionAttributes(value={"username", "password"}, types={String.class, List.class})
ModelAttribute
使用ModelAttribute,可以自动将session中指定的参数注入到方法的形参;但是如果session中没有指定的参数,会抛出异常:
org.springframework.web.HttpSessionRequiredException: Session attribute 'username' required - not found in session
Model中的数据
Spring 会把Session中的数据装载到Model中,所以使用model.asMap().get("username")可以获取 session中的数据。返回页面前,spring会把Model中的数据放入requestScope,所以在页面可以使 用${requestScope.username}来获取数据。
-
koa中使用session和redis缓存
2019-11-29 09:44:47npm i koa-generic-session --save npm i koa-redies --save 用就行不要去理解 const session = require('koa-generic-session') const Redis = require('koa-redis') const Store = new Redis().client app...下载插件
npm i koa-generic-session --save npm i koa-redies --save
用就行不要去理解
const session = require('koa-generic-session') const Redis = require('koa-redis') const Store = new Redis().client app.keys = ['saffasfassadasd', 'safasf']; // 对session进行加密的key app.use(session({ prefix:"aaafsfa", // 给session对象在redis存储的地址名前面添加的前缀内容 key:"abc", // key名 store:new Redis() // 在Redis中放入一个session对象 })) router.get('/', async function (ctx, next) { ctx.session.name = ctx.request.query.name // 从url中获取name值赋给session const st = await Store.hset('fix','name',ctx.request.query.name) // 给fix存储地址类型是hash const a = await Store.get("aaafsfa"+ctx.cookies.get("abc")) // 获取括号中地址的字符串sting类型 console.log(JSON.parse(a).name) // 转化成对象 ctx.body = 'this is a users response!' // hash (哈希 和对象差不多) hget hset // string 字符串 get set
// 创建集合 set // 内容不会重复的集合 如果有这个value就不会再添加进去了 Store.sadd("key1", "v3"); Store.sadd("key1", "v6"); Store.sadd("key1", "v1");
set// 查询set中数据 var key = "key1"; Store.multi() .sismember(key, 'v1') // key1集合中是否存在v1 .sismember(key, 'v6') .sismember(key, 'v2') .smembers(key) // 查询key1集合中所有的value .exec(function (err, replies) { console.log("MULTI got " + replies.length + " replies"); console.log(replies) // 代表上面查询的结果的集合 replies.forEach(function (reply, index) { // 遍历出每一个结果返回出来 console.log("Reply " + index + ": " + reply.toString()); }); });
console.log(await Store.smembers("key1")) // 直接返回所有的set
console.log(Store.smembers("key1"))
list// 提交list类型的数据 Store.rpush("mylist", "bbb") Store.rpush("mylist", "ccc") Store.lpush("mylist", "aaa") // 会将这个值放到list数据的最上面 console.log(await Store.rpop("mylist")) // ccc // 作用是删除list中的最后一条数据
下图我最后执行了一次Store.rpush(“mylist”, “aaa”)
有序集合(SortedSets)Store.zadd(['zdb',0,'mysql', 1,'mongo',2,'redis'], function(err, data) { console.log(data); // 3 }) // [地址,0,'mysql', 1,'mongo',2,'redis'] Store.zrange(["zdb",0,2], function(err, data) { // 获取zdb中0-2之间的元素 console.log(data); // [ 'redis', 'mysql', 'redis' ] }) Store.zrank(["zdb","mongo"], function(err, data) { // 返回mongo在zdb中的位置 // 位置从0开始算 console.log(data); //1 })
-
vue 获取存在session里面的数据
2022-03-15 17:24:37 -
java Session缓存
2020-10-20 17:28:321.原理:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中。HttpSession2.快速入门:1.获取HttpSession对象:HttpSession session = request.getSession();2.使用HttpSession对象... -
spring redis配置多数据源实现session共享和缓存存储分开保存
2017-01-19 15:23:17最近项目中用到了redis实现session共享和缓存存储,那么实现这两点并不难,网上也有大量的例子,那么问题在于两者如何能够分别保存在不同的redis中,以方便管理呢。 -
java session如何存取数据
2021-03-10 05:32:31展开全部java session存取数据的方法:session存数32313133353236313431303231363533e58685e5aeb931333363376461据方法:publicvoidsetAttribute(Stringname,Stringvalue)方法,设定指定名字的属性的值,并将它添加... -
在 koa2 中配置 session 与 session中保存数据
2020-07-29 20:31:001、首先用 npm 安装 session npm install koa-session --save 2、安装成功后,接下来就是配置 session ...之后就是设置 session 的相关数据 //设置session app.keys = ['some secret hurr']; // 签名 -
javascript怎么获取session的值?
2021-06-10 16:11:04在JavaScript开发工作中,session是被经常使用的,把某一对象置于session缓存内,并在jsp页面中提取session中放进去的对象是很常见的,下面一起看看:1、获取Session中的整条数据//后台中向Session中放入值的代码:... -
java - 自定义缓存 / 简单版session
2019-08-31 11:50:03缓存实体类 package com.example.springbootcooket.cache; /** * * @classDesc: 功能描述:(缓存实体类) */ public class Cache { // key private String key; // 值 private Object value; //有效期 ... -
创建 spark_session 读取数据-加入缓存-并使用SQL语句分析
2018-09-21 21:04:141 创建 spark_session 读取数据-加入缓存 2 SparkSQL数据分析(DSL,SQL) 1 创建 spark_session 读取数据-加入缓存 #!/usr/bin/env python # -*- coding: utf-8 -*- import os ... -
jeesite 通过后台Cache缓存类中缓存数据,登录系统
2019-01-16 16:46:16b在登录返回之后再苹果手机上是不会将session数据清空的。但是在安卓手机上就会将session清空,这一点一直不清楚是为什么!后来就想了一个用缓存再次登录的方法。 Subject subject = SecurityUtils.getSubject();//... -
think php6 使用redis缓存数据和读取数据
2021-12-01 17:28:391.安装redis 首先确认自己电脑已经安装redis ...3.config文件下cache和session需要配置 config/cache添加 标红为新添加的配置 return [ // 默认缓存驱动 'default' => Env::get('cache.drive. -
shiro中session缓存中关于JSESSIONID失效问题
2018-05-14 19:19:41用一个小dmeo来学习shiro的权限分配管理,在学习其中的在线会话管理,要用到sesssion管理,结果跟着张凯涛的shiro教程学到这里后使用了自定义实现的缓存管理和session管理,碰到了这么个错误。 测试的时候一直是拿... -
js获取session中的值
2018-07-09 11:55:21在java开发工作中,session是被经常使用的,把某一对象置于session缓存内,并在jsp页面中提取session中放进去的对象是很常见的,下面一起看看: 1.获取Session中的整条数据 //后台中向Session中放入值的... -
浅谈Mybatis中session的一级缓存的实现原理
2017-10-30 23:39:56最近由于受工作中业务需要和现有...初步完成后,底层的session并没能像mybatis那样能支持session的一级缓存(虽然在和Spring整合之后,Mybatis的session的一级缓存并没起什么作用),so,通过看源码大致了解一哈Mybati -
在html文件中用js获取session
2021-06-11 10:08:38在html文件中用js获取session文章作者:网友投稿 发布时间:2008-07-25 13:03:47 来源:网络原以为很简单,事实上的确简单。但还是碰到了一个在做之前没有考虑到的问题:ajax的缓存问题。所以看似容易的问题还是要... -
分布式集群Session缓存丢失问题
2018-12-11 13:52:59Session缓存共享的背景和意义:通常我们搭建完集群之后,不得不考虑的一个问题就是用户访问产生的session如何处理。如果不做任何处理的话,用户将出现频繁登录的现象,比如集群中存在A、B两台服务器,用户在第一次... -
【Filter操作Request/Response数据】HttpServletRequestWrapper使用技巧(自定义session和缓存InputStream...
2020-09-11 16:33:47javax.servlet.http.HttpServletRequestWrapper 是一个开发者可以继承的类,我们可以重写相应的方法来实现session的自定义以及缓存InputStream,在程序中可以多次获取request body的内容。 二、自定义seesion ... -
session 存入redis缓存
2019-05-15 11:42:19为什么要把SESSION保存在缓存 就PHP来说,语言本身支持的session是以文件的方式保存到磁盘文件中,保存在指定的文件夹中,保存的路径可以在配置文件中设置或者在程序中使用函数session_save_path()进行设置,但是... -
11---Session中的一级缓存
2018-04-16 13:03:39Session中的一级缓存1.Session中的一级缓存 Hibernate框架共有两级缓存, 一级缓存(Session级别缓存)、二级缓存(SessionFactory级别缓存) 在Session接口的实现中包含一系列的 Java 集合, 这些 Java 集合构成了... -
浏览器 session的存储及获取
2021-11-19 09:03:32session 在浏览器的存储 window.sessionStorage["signId"] = res.data.id; session 的读取 var signId= sessionStorage.getItem("signId"); 清空 window.sessionStorage["signId"] = ''; -
传统Session与使用缓存Redis区别
2018-08-25 15:12:34原生session在服务器端存储具有更高的可靠性,可以存储在文件、数据库、内存中。使用Session维护用户登录转态的过程: 用户进行登录时,提交的登录表单,放入request; 服务器端校验用户名和密码; 通过后... -
Hibernate3中Session缓存即一级缓存
2016-06-23 22:51:53Hibernate3中Session缓存即一级缓存 概述 什么是Session缓存 Hibernate的一级缓存是由Session提供的,因此它存在于Session的整 个生命周期中,当程序调用save()/update()/saveOrupdate()/get()等及 查询... -
Hibernate——一级缓存(session)
2019-12-15 19:32:40目录 持久化类分的三种状态 瞬时态 transient : 持久态 persistent : ...通过2段代码进一步理解session缓存: 对session缓存进行管理操作方法: 一级缓存中的快照区: 基于一级缓存考虑到的session... -
Hibernate中对象状态以及一级缓存(session的缓存)
2017-11-22 13:59:261、Hibernate中对象的状态: 临时/瞬时状态、持久化状态、游离状态。 1)临时状态特点: a)直接new出来的对象。 b)不处于session的管理 c)数据库中没有对象的记录。 2)持久化状态特点: a)当调用... -
spring boot学习(06):Redis 实现数据缓存和 Session 共享
2018-07-06 20:27:38前面我们学习了redis的基本使用,我们知道redis最常用的应用场景,就是数据缓存和session共享,Spring Boot 针对这两个场景都做了一些优化,让我们在实际项目中使用非常的方便。 数据缓存 使用 Redis 做为数据... -
.NETCore WebApi中的缓存机制
2021-08-09 08:35:01针对这样的情况我们就可以考虑通过缓存放置到内存存储中,以空间换取时间的提升,可以提高应用程序的效率;关于缓存的方法有【Cache、Session、Cookie等】,还有功能比较强大的缓存方法,如:Redis等。 本文主要... -
hibernate的session缓存机制
2017-06-04 17:50:57Hibernate的Session缓存就是这样的一种机制。谈论Session缓存之前,先看看Hibernate的Session是什么。 Session 接口是 Hibernate 向应用程序提供的操纵数据库的最主要的接口, 它提供了基本的保存, 更新, 删除和加载... -
在nodejs使用Redis缓存和查询数据及Session持久化(Express)
2017-07-27 10:52:33在之前的这篇文章 在...我们为什么要把Session存放到数据中,以及又为什么要在子域名间跨域共享Cookie呢? Session与Cookie的关系 客户端与服务会使用一个Sessionid的Cookie值来进行客户端和服务器端会话