PCB Redis的安装使用
记录一下Redis的安装与基本使用
Redis(REmote DIctionary Server)远程字典服务器,免费开源,是一个高性能的(Key/Value)分布式内存数据库。其特点为,数据类型丰富,各种各样的问题都可以映射到这些数据结构中,Redis数据结构致力于解决用户问题,性能方面,Redis支持集群加之本身作为内存数据库我们可以很方便的进行每秒数千万的访问,并且Redis支持数据持久化,可以将内存中的数据保存到磁盘中,重启的时候可以再次加载使用,集群方面Redis支持数据备份和容灾恢复,保证了高可用,支持多种语言接口,支持事务、发布订阅等功能,总体性价比较高。
下载地址 https://pan.baidu.com/s/1mlv6OdLhbzofYcM2D--hIw
提取码 ly4i
1.Windows服务启动Redis
2.手动启动Redis
1.连接Redis
redis-cli.exe -h 127.0.0.1 -p 6380 -a abc+2015
2.设置与获取String
set holecu 25
get holecu
3.设置与获取List
rpush list 1,2,3
rpush list 4
lrange list 0 1
4.控制台命令执行界面
1.下载地址
下载地址 https://pan.baidu.com/s/1_OtZ14_7M4F7NPMZQuDF8g
提取码 1y5c
2.登入连接
3. Key/Val操作界面
1.Nuget StackExchange.Redis与Newtonsoft.Json
2.C# Redis 基本操作
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using StackExchange.Redis;
using Newtonsoft.Json; namespace RedisDemo
{
class Program
{
static void Main(string[] args)
{
//127.0.0.1:6379:IP,端口
//password:Redis密码
//connectTimeout:连接超时时间,这里设置的是1000毫秒
//connectRetry:重试连接次数
//syncTimeout:同步操作默认超时时间
ConnectionMultiplexer _conn = ConnectionMultiplexer.Connect("127.0.0.1:6380,password=abc+2015,connectTimeout=1000,connectRetry=1,syncTimeout=1000");
var db = _conn.GetDatabase(5);//指定连接库 5 //存取单值
db.StringSet("表面处理", "沉金");
string str = db.StringGet("表面处理");
db.StringSet("板厚", 1.0, TimeSpan.FromSeconds(60)); //设置60秒过期 //单值递增或递减
var intA = db.StringIncrement("Increment", 2);//Redis值 递增2
var intB = db.StringDecrement("Decrement", 1);//Redis值 递减1 //存取对象
mktxhglb model1 = new mktxhglb()
{
pdctno = "at00101ca0",
LayerNum = 10,
BoardThick = 1.0,
SurfaceType = "沉金"
};
string modelJson1 = JsonConvert.SerializeObject(model1);
db.StringSet("mktxhglb", modelJson1);
string modelJson2 = db.StringGet("mktxhglb");
mktxhglb model2 = JsonConvert.DeserializeObject<mktxhglb>(modelJson2); //存取List
db.ListRightPush("list", 1); //尾 追加值
db.ListRightPush("list", 2); //尾 追加值
db.ListLeftPush("list", 10); //顶 追加值
db.ListLeftPush("list", 20); //顶 追加值
var list = db.ListRange("list"); //获取list列表 20,10,1,2
var rightPop = db.ListRightPop("list");//尾 取出值 2
var leftpop = db.ListLeftPop("list"); //顶 取出值 20 //哈希(Redis本身是key/value,相当于Value中再嵌入一层key/value)
db.HashSet("产品信息", "板长", 200);
db.HashSet("产品信息", "板宽", 150);
db.HashSet("产品信息", "板厚", 1.0);
db.HashSet("产品信息", "表面处理", "沉锡");
var HashList = db.HashGetAll("产品信息");//获取所有Hash
foreach (var item in HashList)
{
Console.WriteLine($"产品信息 {item.Name} { item.Value}");
}
var BoardLenght = db.HashGet("产品信息", "板长"); //消息发布与订阅 和MQ消息队列功能
ISubscriber Subscriber = _conn.GetSubscriber();
//订阅消息 pcbren.Channel通道
Subscriber.Subscribe("pcbren.Channel", new Action<RedisChannel, RedisValue>((channel, msg) =>
{
Console.WriteLine($"收到消息:" + msg);
}));
//发送消息 pcbren.Channel通道
Subscriber.Publish("pcbren.Channel", $"发送信息 {DateTime.Now}");
//取消订阅
Subscriber.Unsubscribe("pcbren.Channel"); //批量操作
var bat = db.CreateBatch();
//批量写
Task t1 = bat.StringSetAsync("孔铜", 25);
Task t2 = bat.StringSetAsync("面铜", 63);
bat.Execute();
Task.WaitAll(t1, t2);
//批量读
List<Task<RedisValue>> valueList = new List<Task<RedisValue>>();
valueList.Add(bat.StringGetAsync("孔铜"));
valueList.Add(bat.StringGetAsync("面铜"));
bat.Execute();
}
}
public class mktxhglb
{
/// <summary>
/// 生产型号
/// </summary>
public string pdctno { get; set; }
/// <summary>
/// 层数
/// </summary>
public int LayerNum { get; set; }
/// <summary>
/// 板厚
/// </summary>
public double BoardThick { get; set; }
/// <summary>
/// 表面处理类型
/// </summary>
public string SurfaceType { get; set; }
}
}
3.StackExchange.Redis Demo (C#)
地址 https://pan.baidu.com/s/1rn8GhiszkDQ7ccrqNcNYYA
提取码 jsue
redis.windows.conf 配置文件参数说明
daemonize:如需要在后台运行,把该项的值改为yes
pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址
bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项
port:监听端口,默认为6379
timeout:设置客户端连接时的超时时间,单位为秒
loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice
logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上
database:设置数据库的个数,默认使用的数据库是0
save:设置redis进行数据库镜像的频率
rdbcompression:在进行镜像备份时,是否进行压缩
dbfilename:镜像备份文件的文件名
dir:数据库镜像备份的文件放置的路径
slaveof:设置该数据库为其他数据库的从数据库
masterauth:当主数据库连接需要密码验证时,在这里设定
requirepass:设置客户端连接后进行任何其他指定前需要使用的密码
maxclients:限制同时连接的客户端数量
maxmemory:设置redis能够使用的最大内存
appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态
appendfsync:设置appendonly.aof文件进行同步的频率
vm_enabled:是否开启虚拟内存支持
vm_swap_file:设置虚拟内存的交换文件的路径
vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0
vm_page_size:设置虚拟内存页的大小
vm_pages:设置交换文件的总的page数量
vm_max_thrrads:设置vm IO同时使用的线程数量
1、连接操作相关的命令
- quit:关闭连接(connection)
- auth:简单密码认证
2、对value操作的命令
- exists(key):确认一个key是否存在
- del(key):删除一个key
- type(key):返回值的类型
- keys(pattern):返回满足给定pattern的所有key
- randomkey:随机返回key空间的一个key
- rename(oldname, newname):将key由oldname重命名为newname,若newname存在则删除newname表示的key
- dbsize:返回当前数据库中key的数目
- expire:设定一个key的活动时间(s)
- ttl:获得一个key的活动时间
- select(index):按索引查询
- move(key, dbindex):将当前数据库中的key转移到有dbindex索引的数据库
- flushdb:删除当前选择数据库中的所有key
- flushall:删除所有数据库中的所有key
3、对String操作的命令
- set(key, value):给数据库中名称为key的string赋予值value
- get(key):返回数据库中名称为key的string的value
- getset(key, value):给名称为key的string赋予上一次的value
- mget(key1, key2,…, key N):返回库中多个string(它们的名称为key1,key2…)的value
- setnx(key, value):如果不存在名称为key的string,则向库中添加string,名称为key,值为value
- setex(key, time, value):向库中添加string(名称为key,值为value)同时,设定过期时间time
- mset(key1, value1, key2, value2,…key N, value N):同时给多个string赋值,名称为key i的string赋值value i
- msetnx(key1, value1, key2, value2,…key N, value N):如果所有名称为key i的string都不存在,则向库中添加string,名称key i赋值为value i
- incr(key):名称为key的string增1操作
- incrby(key, integer):名称为key的string增加integer
- decr(key):名称为key的string减1操作
- decrby(key, integer):名称为key的string减少integer
- append(key, value):名称为key的string的值附加value
- substr(key, start, end):返回名称为key的string的value的子串
4、对List操作的命令
- rpush(key, value):在名称为key的list尾添加一个值为value的元素
- lpush(key, value):在名称为key的list头添加一个值为value的 元素
- llen(key):返回名称为key的list的长度
- lrange(key, start, end):返回名称为key的list中start至end之间的元素(下标从0开始,下同)
- ltrim(key, start, end):截取名称为key的list,保留start至end之间的元素
- lindex(key, index):返回名称为key的list中index位置的元素
- lset(key, index, value):给名称为key的list中index位置的元素赋值为value
- lrem(key, count, value):删除count个名称为key的list中值为value的元素。count为0,删除所有值为value的元素,count>0从 头至尾删除count个值为value的元素,count<0从尾到头删除|count|个值为value的元素。 lpop(key):返回并删除名称为key的list中的首元素 rpop(key):返回并删除名称为key的list中的尾元素 blpop(key1, key2,… key N, timeout):lpop命令的block版本。即当timeout为0时,若遇到名称为key i的list不存在或该list为空,则命令结束。如果timeout>0,则遇到上述情况时,等待timeout秒,如果问题没有解决,则对 keyi+1开始的list执行pop操作。
- brpop(key1, key2,… key N, timeout):rpop的block版本。参考上一命令。
- rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部
5、对Set操作的命令
- sadd(key, member):向名称为key的set中添加元素member
- srem(key, member) :删除名称为key的set中的元素member
- spop(key) :随机返回并删除名称为key的set中一个元素
- smove(srckey, dstkey, member) :将member元素从名称为srckey的集合移到名称为dstkey的集合
- scard(key) :返回名称为key的set的基数
- sismember(key, member) :测试member是否是名称为key的set的元素
- sinter(key1, key2,…key N) :求交集
- sinterstore(dstkey, key1, key2,…key N) :求交集并将交集保存到dstkey的集合
- sunion(key1, key2,…key N) :求并集
- sunionstore(dstkey, key1, key2,…key N) :求并集并将并集保存到dstkey的集合
- sdiff(key1, key2,…key N) :求差集
- sdiffstore(dstkey, key1, key2,…key N) :求差集并将差集保存到dstkey的集合
- smembers(key) :返回名称为key的set的所有元素
- srandmember(key) :随机返回名称为key的set的一个元素
6、对zset(sorted set)操作的命令
- zadd(key, score, member):向名称为key的zset中添加元素member,score用于排序。如果该元素已经存在,则根据score更新该元素的顺序。
- zrem(key, member) :删除名称为key的zset中的元素member
- zincrby(key, increment, member) :如果在名称为key的zset中已经存在元素member,则该元素的score增加increment;否则向集合中添加该元素,其score的值为increment
- zrank(key, member) :返回名称为key的zset(元素已按score从小到大排序)中member元素的rank(即index,从0开始),若没有member元素,返回“nil”
- zrevrank(key, member) :返回名称为key的zset(元素已按score从大到小排序)中member元素的rank(即index,从0开始),若没有member元素,返回“nil”
- zrange(key, start, end):返回名称为key的zset(元素已按score从小到大排序)中的index从start到end的所有元素
- zrevrange(key, start, end):返回名称为key的zset(元素已按score从大到小排序)中的index从start到end的所有元素
- zrangebyscore(key, min, max):返回名称为key的zset中score >= min且score <= max的所有元素 zcard(key):返回名称为key的zset的基数 zscore(key, element):返回名称为key的zset中元素element的score zremrangebyrank(key, min, max):删除名称为key的zset中rank >= min且rank <= max的所有元素 zremrangebyscore(key, min, max) :删除名称为key的zset中score >= min且score <= max的所有元素
- zunionstore / zinterstore(dstkeyN, key1,…,keyN, WEIGHTS w1,…wN, AGGREGATE SUM|MIN|MAX):对N个zset求并集和交集,并将最后的集合保存在dstkeyN中。对于集合中每一个元素的score,在进行 AGGREGATE运算前,都要乘以对于的WEIGHT参数。如果没有提供WEIGHT,默认为1。默认的AGGREGATE是SUM,即结果集合中元素 的score是所有集合对应元素进行SUM运算的值,而MIN和MAX是指,结果集合中元素的score是所有集合对应元素中最小值和最大值。
7、对Hash操作的命令
- hset(key, field, value):向名称为key的hash中添加元素field<—>value
- hget(key, field):返回名称为key的hash中field对应的value
- hmget(key, field1, …,field N):返回名称为key的hash中field i对应的value
- hmset(key, field1, value1,…,field N, value N):向名称为key的hash中添加元素field i<—>value i
- hincrby(key, field, integer):将名称为key的hash中field的value增加integer
- hexists(key, field):名称为key的hash中是否存在键为field的域
- hdel(key, field):删除名称为key的hash中键为field的域
- hlen(key):返回名称为key的hash中元素个数
- hkeys(key):返回名称为key的hash中所有键
- hvals(key):返回名称为key的hash中所有键对应的value
- hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value
8、持久化
- save:将数据同步保存到磁盘
- bgsave:将数据异步保存到磁盘
- lastsave:返回上次成功将数据保存到磁盘的Unix时戳
- shundown:将数据同步保存到磁盘,然后关闭服务
9、远程服务控制
- info:提供服务器的信息和统计
- monitor:实时转储收到的请求
- slaveof:改变复制策略设置
- config:在运行时配置Redis服务器
PCB Redis的安装使用的更多相关文章
- redis的安装配置
主要讲下redis的安装配置,以及以服务的方式启动redis 1.下载最新版本的redis-3.0.7 到http://redis.io/download中下载最新版的redis-3.0.7 下载后 ...
- Linux下Redis的安装和部署
一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...
- 基于C#的MongoDB数据库开发应用(4)--Redis的安装及使用
在前面介绍了三篇关于MongoDB数据库的开发使用文章,严格来讲这个不能归类于MongoDB数据库开发,不过Redis又有着和MongoDB数据库非常密切的关系,它们两者很接近,Redis主要是内存中 ...
- Linux下Redis的安装与配置
redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了 memcached的不足,它支持存储的value类型相对更多,包括stri ...
- [nosql之redis]yum安装redis
1.首先对于这种nosql来说目前我用到的功能很少,所以感觉没有必要去优化他跟不需要去编译安装.今天来介绍下一个yum安装redis 步骤1:安装扩展yum库 [root@localhost ~]# ...
- Linux下redis的安装
第一部分:安装redis 希望将redis安装到此目录 /usr/local/redis 希望将安装包下载到此目录 /usr/local/src 那么安装过程指令如下: $ mkdir /usr/lo ...
- redis的安装和启动
Windows下Redis的安装及PHP扩展使用 时间 2014-10-28 17:47:09 CSDN博客 原文 http://blog.csdn.net/wyqwclsn/article/de ...
- linux下redis的安装与部署及基础命令
<1>下载安装文件:redis-3.2.5.tar.gz 放在opt目录下 <2> tar -zxvf redis-3.2.5.tar.gz,备份redis.conf到自己的目 ...
- redis/php redis扩展 安装
作者:silenceper 日期:2013-10-03 原文地址: http://silenceper.com/archives/952.html 我是在CentOS 6.3 中进行的. 使用到的软件 ...
随机推荐
- gridview读取Excel文件中的数据,并将其导入数据库
原文发布时间为:2008-10-16 -- 来源于本人的百度文章 [由搬家工具导入] //将需要导入的文件上传到服务器 string filePath = "" ...
- [Bzoj1034][ZJOJ2008]泡泡堂BNB(贪心)
1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3482 Solved: 1776[Submit][St ...
- 操作redis有关的命令
)连接操作命令 quit:关闭连接(connection) auth:简单密码认证 help cmd: 查看cmd帮助,例如:help quit )持久化 save:将数据同步保存到磁盘 bgsave ...
- [开源]OSharpNS - .net core 快速开发框架 - 简介
什么是OSharp OSharpNS全称OSharp Framework with .NetStandard2.0,是一个基于.NetStandard2.0开发的一个.NetCore快速开发框架.这个 ...
- Linux 思维导图
1.Linux学习路径: 2.Linux桌面介绍: 3.FHS(文件系统目录标准): 以上三张图,都是在学习实验楼上的课程--Linux 基础入门,教程里面看到的. 4.Linux需要特别注意的目录: ...
- Scala入门到精通——第二十四节 高级类型 (三)
作者:摆摆少年梦 视频地址:http://blog.csdn.net/wsscy2004/article/details/38440247 本节主要内容 Type Specialization Man ...
- Android与设计模式——代理(Proxy)模式
在阎宏博士的<JAVA与模式>一书中开头是这样描写叙述代理(Proxy)模式的: 代理模式是对象的结构模式.代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用. 代理模式 ...
- Highcharts:X轴分组堆叠图
在设计一个项目中的数据展示页面时.想要设计双X轴,一个轴显示须要的项.一个轴对这些项进行分组.效果如图: Highcharts自带双X轴展示方式.可是效果不是太理想.调整起来也会麻烦些 看到Highc ...
- hdu4941 Magical Forest
Problem Description There is a forest can be seen as N * M grid. In this forest, there is some magic ...
- C项目实践--家庭财务管理系统
1.功能需求分析 家庭财务管理系统给家庭成员提供了一个管理家庭财务的平台,系统可以对家庭成员的收入和支出进行增加,删除.修改和查询等操作,并能统计总收入和总支出.其主要功能需求描述如下: (1)系统主 ...