Redis_简单使用
可基于内存也可持久化的Key-Value(字典, Remote Dictionary Server,远程字典服务器)数据库。
命令:http://redis.io/commands http://redisdoc.com
.NET开发程序配置
- ServiceStack.Common.dll
- ServiceStack.Interfaces.dll
- ServiceStack.Redis.dll
- ServiceStack.Text.dll
- 程序配置Redis服务IP和端口:
static RedisClient Redis = new RedisClient("192.168.100.118", 6379); - 双击运行:redis-server.exe
Redis Desktop Manager 介绍
Redis Desktop Manager(RedisDesktopManager,RDM)是一个快速、简单、支持跨平台的 Redis 桌面管理工具
下载地址:http://redisdesktop.com/download
C#操作5种基本数据类型
1. 字符串
A: 存储普通字符串,并设置过期时间
int expireTime = 5000;// 5S
存储:client.Add<string>("StringKey","StringValue", DateTime.Now.AddMilliseconds(expireTime));
获取:client.Get<string>("StringKey"), DateTime.Now);
B: 存储类对象
Student stud = new Student() { id = "1000", name = "张三" };
存储:client.Add<Student>("StringEntity", stud);
获取:Student Get_stud = client.Get<Student>("StringEntity");
2. 哈希
存储: client.SetEntryInHash("HashID", "Name", "张三");
A: 遍历HashID值为HashID的keys
获取:List<string> HaskKey = client.GetHashKeys("HashID");
B:遍历HashID值为HashID的values
获取:List<string> HaskValue = client.GetHashValues("HashID");
C:遍历所有keys
获取:List<string> AllKey = client.GetAllKeys();
3. 链表
A: 队列
入队:client.EnqueueItemOnList("QueueListId", "1");
出队:long q = client.GetListCount("QueueListId");
client.DequeueItemFromList("QueueListId"));
B: 栈
入栈:client.PushItemToList("StackListId", "1");
出栈:client.PopItemFromList("StackListId")
4. 无序集合
存储: client.AddItemToSet("SetA", "1");
获取:HashSet<string> setA = client.GetAllItemsFromSet("SetA");
A:并集
HashSet<string> hashUnion = client.GetUnionFromSets(new string[] { "SetA", "SetB" });
B:交集
HashSet<string> intersectSet = client.GetIntersectFromSets(new string[] { "SetA", "SetB" });
C:差集
HashSet<string> setOfDiffSetAToSetB = client.GetDifferencesFromSet("SetA", new string[] { "SetB" });
5. 有序集合
存储:client.AddItemToSortedSet("SetSorted", "A");
输出:List<string> listSetSorted = client.GetAllItemsFromSortedSet("SetSorted");
Redis应用场景
A.抢XXX赠券、抽奖系统的奖品库存,使用的Redis中的链表
前一天晚上通过定时服务推送奖品库存,使用LPUSH命令将乱序的奖品推入List中,抽奖时则调用LPOP命令,将最左侧奖品弹出队列,提示用户中奖。同时,发送异步消息,让消息去处理中奖纪录并插入关系型数据库中。
好处:
出队操作速度极快,可以满足多人并发抽奖的场景。
使用了消息队列,避免了数据库并发操作。
完全避免了关系性数据库的查询插入操作
Redis的查询速度非常快,提升了用户体验
1. redis持久化RDB和AOF http://my.oschina.net/davehe/blog/174662
2. Redis作者谈Redis应用场景 http://blog.nosqlfan.com/html/2235.html
3. Redis使用总结之与Memcached异同 http://www.cnblogs.com/ceecy/p/3279407.html
4. Redis内存使用优化与存储 http://www.infoq.com/cn/articles/tq-redis-memory-usage-optimization-storage
5. Redis学习手册(目录) http://www.cnblogs.com/stephen-liu74/archive/2012/04/16/2370212.html
Redis_简单使用的更多相关文章
- redis_简单动态字符串
在redis中,C字符串(以'\0'结尾的字符数组)只用在一些无需对字符串值进行修改的地方,比如打印日志.其他情况,redis使用SDS - SimpleDynamicString 简单动态字符串,来 ...
- Redis、Redis+sentinel安装(Ubuntu 14.04下Redis安装及简单测试)
Ubuntu下Redis安装两种安装方式: 1.apt-get方式 步骤: 以root权限登录,切换到/usr目录下. 接下来输入命令,apt-get install redis-server,如图: ...
- 测试redis+keepalived实现简单的主备切换【转载】
转自: 测试redis+keepalived实现简单的主备切换 - Try My Best 尽力而为 - ITeye技术网站http://raising.iteye.com/blog/2311757 ...
- 【造轮子】打造一个简单的万能Excel读写工具
大家工作或者平时是不是经常遇到要读写一些简单格式的Excel? shit!~很蛋疼,因为之前吹牛,就搞了个这东西,还算是挺实用,和大家分享下. 厌烦了每次搞简单类型的Excel读写?不怕~来,喜欢流式 ...
- Fabio 安装和简单使用
Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- 哪种缓存效果高?开源一个简单的缓存组件j2cache
背景 现在的web系统已经越来越多的应用缓存技术,而且缓存技术确实是能实足的增强系统性能的.我在项目中也开始接触一些缓存的需求. 开始简单的就用jvm(java托管内存)来做缓存,这样对于单个应用服务 ...
- 在Openfire上弄一个简单的推送系统
推送系统 说是推送系统有点大,其实就是一个消息广播功能吧.作用其实也就是由服务端接收到消息然后推送到订阅的客户端. 思路 对于推送最关键的是服务端向客户端发送数据,客户端向服务端订阅自己想要的消息.这 ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
随机推荐
- Jmeter压力测试简单教程(包括服务器状态监控)
前段时间公司需要对服务器进行压力测试,包括登录前的页面和登录后的页面,主要目的是测试负载均衡的实现效果.不知道是不是因为Jmeter不如loadRunner火爆还是什么,网上关于Jmeter的资料有很 ...
- linux 平均负载 load average 的含义【转】
文章来源: linux 平均负载 load average 的含义 load average 的含义 平均负载(load average)是指系统的运行队列的平均利用率,也可以认为是可运行进程的平均数 ...
- January 25th, 2018 Week 04th Thursday
What made something precious? Losing it and finding it. 一件东西怎样才会变得珍贵无比?先弄丢了它,然后又找到了. A short time ag ...
- iOS解析XML实现省市区选择
1.具体内容就不再赘述了.直接看关键代码. viewController.h // // ViewController.h // ParseXmlToRealizeChooseCityDemo // ...
- 17秋 软件工程 团队第五次作业 Alpha Scrum12
各个成员今日完成的任务 Alpha版本完成. 项目的发布说明 本版本的新功能 1.部门人员管理,包括纳新申请与审核: 2.部门活动发布与查看: 3.部门活动相册: 4.子部门信息录入. 软件对运行环境 ...
- 计算机基础-BIOS
BIOS--硬件和软件的纽带(Basic Input Output System) 1.含义:基本的输入输出系统,它是一组固化到计算机内主板上的一个ROM存储芯片上的程序 2.性质:它保存着计算机最重 ...
- <20180929>任性的甲方
今天参观了朋友在监督的新项目, 这个项目周期大概在6到9个月,预计本年度11月竣工. 总共大楼有五层, 施工面积在一万平米左右. 位于三楼的机房使用的设备有点高大上,发上来鉴赏一下. 双专线, 第二条 ...
- Ceph基础知识和基础架构认识
1 Ceph基础介绍 Ceph是一个可靠地.自动重均衡.自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储.块设备存储和文件系统服务.在虚拟化领域里,比较常用到的是Cep ...
- Django Form ModelForm modelfromset
forms 组件 Form 组件 form表单完成的事情 提供input可以提交数据 对提交的数据进行校验 提供错误提示 定义form组件 from django import forms class ...
- C#泛型约束where T : class 解释
这是参数类型约束,指定T必须是Class类型. .NET支持的类型参数约束有以下五种:where T : struct | T必须是一个结构 ...