
存储区公开数据舱中的虚文件系统。IsolatedStorageFile 提供了许多与存储区进行交互的方法。要创建和检索存储区,IsolatedStorageFile 提供了三种静态方法。调用 GetUserStoreForAssembly 或GetUserStoreForDomain 分别返回按用户和程序集隔离及按用户、域和程序集隔离的存储。这两种方法检索属于代码块(是从该代码块中调用这两种方法的)的存储区。静态方法 GetStore 返回独立存储区,该存储区是通过传入范围参数组合指定的。下面的参数返回一个按用户、程序集和域隔离的存储区。 GetStore(IsolatedStorageScopeUser | IsolatedStorageScopeAssembly | IsolatedStorageScopeDomain, null, null);GetStore 方法可以用于指定存储区应该和漫游用户配置文件一起漫游。有关如何对此进行设置的详细信息,请参见独立存储和漫游。默认情况下,从不同的程序集中获得的独立存储区是不同的。您可以访问不同程序集或域的存储区,方法是传入不同的程序集或域证据作为 GetStore 方法的最后两个参数。这需要访问按应用程序域标识隔离的独立存储的权限。有关更多信息,请参见 GetStore 方法。有关程序集的更多信息,请参见程序集。三种方法中的每种方法都返回 IsolatedStorageFile 对象。要帮助您确定哪种隔离类型最适合您的情况,请参见隔离的类型。一旦具有了独立存储文件对象之后,您便可以使用独立存储方法来读取、写入、创建和删除文件及文件目录了。
安装好redis,进行了基本的 *** 作。包括对map list 和自定义对象的基本 *** 作。笔记都在代码注释里,直接上代码。
private Jedis jedis;
@Before
public void before() {
jedis = new Jedis("127001");
}
/
简单添加
/
@Test
public void test1() {
String name = "name";
String value = "qq";
jedisset(name, value);
Systemoutprintln("追加前:" + jedisget(name)); // 追加前:qq
// 在原有值得基础上添加,如若之前没有该key,则导入该key
jedisappend(name, "ww");
Systemoutprintln("追加后:" + jedisget(name)); // 追加后:qqww
jedisappend("id", "ee");
Systemoutprintln("没此key:" + jedisget(name));
Systemoutprintln("get此key:" + jedisget("id"));
}
/
mset 是设置多个key-value值 参数(key1,value1,key2,value2,,keyn,valuen) mget
是获取多个key所对应的value值 参数(key1,key2,key3,,keyn) 返回的是个list
/
@Test
public void test2() {
jedismset("name1", "aa", "name2", "bb", "name3", "cc");
Systemoutprintln(jedismget("name1", "name2", "name3"));
}
/
map
/
@Test
public void test3() {
Map<String, String> map = new HashMap<String, String>();
mapput("name", "fujianchao");
mapput("password", "123");
mapput("age", "12");
// 存入一个map
jedishmset("user", map);
// map key的个数
Systemoutprintln("map的key的个数" + jedishlen("user"));
// map key
Systemoutprintln("map的key" + jedishkeys("user"));
// map value
Systemoutprintln("map的value" + jedishvals("user"));
// (String key, String fields)返回值是一个list
List<String> list = jedishmget("user", "age", "name");
Systemoutprintln("redis中key的各个 fields值:"
+ jedishmget("user", "age", "name") + listsize());
// 删除map中的某一个键 的值 password
// 当然 (key, fields) 也可以是多个fields
jedishdel("user", "age");
Systemoutprintln("删除后map的key" + jedishkeys("user"));
}
/
list
/
@Test
public void test4() {
jedislpush("list", "aa");
jedislpush("list", "bb");
jedislpush("list", "cc");
Systemoutprintln(jedislrange("list", 0, -1));
Systemoutprintln(jedislrange("list", 0, 1));
Systemoutprintln(jedislpop("list")); // 栈顶
jedisdel("list");
}
/
自定义对象 User为例 id name
RedisTemplate 中有 序列化和反序列化
如:templategetStringSerializer()serialize("name")
/
@Test
public void test5() {
User user = new User();
usersetId(123);
usersetName("fighter");
// 存入一个 user对象
jedisset("user"getBytes(), SerializationUtilserialize(user));
// 获取
byte[] bs = jedisget("user"getBytes());
User desUser = (User) SerializationUtildeserialize(bs);
Systemoutprintln(desUsergetId() + ":" + desUsergetName());
}
对于自定义对象,需要进行序列化和反序列化:我这里提取出了一个工具类,
SerializationUtiljava
/
序列化就是将一个对象转换为二进制的数据流。这样就可以进行传输,或者保存到文件中。如果一个类的对象要想实现序列化,就必须实现serializable接口。在此接口中没有任何的方法,此接口只是作为一个标识,表示本类的对象具备了序列化的能力而已。
反序列化:将二进制数据流转换成相应的对象。
如果想要完成对象的序列化,则还要依靠ObjectOutputStream和ObjectInputStream,前者属于序列化 *** 作,而后者属于反序列化 *** 作。
/
import javaioByteArrayInputStream;
import javaioByteArrayOutputStream;
import javaioObjectInputStream;
import javaioObjectOutputStream;
public class SerializationUtil {
/
序列化
@param object
@return
/
public static byte[] serialize(Object object) {
ObjectOutputStream oos = null;
ByteArrayOutputStream baos = null;
try {
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);
ooswriteObject(object);
byte[] bytes = baostoByteArray();
return bytes;
} catch (Exception e) {
}
return null;
}
/
反序列化
@param bytes
@return
/
public static Object deserialize(byte[] bytes) {
ByteArrayInputStream bais = null;
try {
bais = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bais);
return oisreadObject();
} catch (Exception e) {
}
return null;
}
}
还有都熟悉的User类。我只简单实用id和name,测试,也贴一下吧
public class User implements Serializable {
/
/
private static final long serialVersionUID = -1530813282496676263L;
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
thisid = id;
}
public String getName() {
return name;
}
public void setName(String name) {
thisname = name;
}
以上就是关于C#如何获取独立存储的存储区全部的内容,包括:C#如何获取独立存储的存储区、jedis 怎么获取存储的对象、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)