.NET 技术 Redis操作经验实现代码
17页1、Redis是一个支持数据结构更多的键值对数据库。它的值不仅可以是字符串等基本数据类型,也可以是类对象,更可以是Set、List、计数器等高级的数据结构。Memcached也可以保存类似于Set、List这样的结构,但是如果说要向List中增加元素,Memcached则需要把List全部元素取出来,然后再把元素增加进去,然后再保存回去,不仅效率低,而且有并发访问问题。Redis内置的Set、List等可以直接支持增加、删除元素的操作,效率很高,操作是原子的。Memcached数据存在内存中,memcached重启后数据就消失;Redis会把数据持久化到硬盘中,Redis重启后数据还存在。1 安装redis for windows =2.8的版本支持直接安装为windows服务(Redis-x64-3.2.100.msi才可以,zip不行)如果下载msi自动装完服务,如果下载zip需要按照下面的方法安装为服务:2 redis与Memcached 区别2.1 redis优缺点2.1.1 redis的优点:1) 支持string、list、set、geo等复杂的数据结构。2) 高命中的数据运行
2、时是在内存中,数据最终还是可以保存到磁盘中,这样服务器重启之后数据还在。3) 服务器是单线程的,来自所有客户端的所有命令都是串行执行的,因此不用担心并发修改(串行操作当然还是有并发问题)的问题,编程模型简单;4) 支持消息订阅/通知机制,可以用作消息队列;5) Key、Value最大长度允许512M;2.1.2 redis的缺点:1) Redis是单线程的,因此单个Redis实例只能使用一个CPU核,不能充分发挥服务器的性能。可以在一台服务器上运行多个Redis实例,不同实例监听不同端口,再互相组成集群。2) 做缓存性能不如Memcached;2.2 Memcached的优缺点2.2.1 Memcached的优点:1) 多线程,可以充分利用CPU多核的性能;2) 做缓存性能最高;2.2.2 Memcached的缺点:1) 只能保存键值对数据,键值对只能是字符串,如果有对象数据只能自己序列化成json字符串;2) 数据保存在内存中,重启后会丢失;3) Key最大长度255个字符,Value最长1M。2.3 总结Memcached只能当缓存服务器用,也是最合适的;Redis不仅可以做缓存服
3、务器(性能没有Memcached好),还可以存储业务数据。3 redis命令行管理客户端3.1 直接启动redis安装目录下的redis-cli即可。执行set myKey abc,就是设置键值对myKey=abc执行get myKey就是查找名字是myKey的值;keys *是查找所有的keykey *n*是查找所有名字中含有n的key3.2 数据没有隔离性和Redis一样,Redis也是不同系统放到Redis中的数据都是不隔离的,因此设定Key的时候也要选择好Key。3.3 尽量选用默认的数据库Redis服务器默认建了16个数据库,Redis的想法是让大家把不同系统的数据放到不同的数据库中。但是建议大家不要这样用,因为Redis是单线程的,不同业务都放到同一个Redis实例的话效率就不高,建议放到不同的实例中。因此尽量只用默认的db0数据库。命令行下可以用select 0、select 1这样的指令切换数据库,最高为15。试试在不同数据库下新建、查询数据。了解的常用的几个命令就可以。所有对数据的操作都可以通过命令行进行,后面讲的.net操作Redis的驱动其实就是对这些命令的封装。
4、4 GUI管理客户端RedisDesktopManager (0.9.3以后需要订阅)5 .NET连接redis推荐组件:StackExchange.Redishttps:/stackexchange.github.io/StackExchange.Redis/其他作品:NewLife.Redis基础教程using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(localhost:6379) IDatabase db = redis.GetDatabase();/默认是访问db0数据库,可以通过方法参数指定数字访问不同的数据库 db.StringSet(Name, abc); 支持设置过期时间:db.StringSet(name, , TimeSpan.FromSeconds(10) 获取数据:string s = db.StringGet(Name)/如果查不到则返回null Redis里所有方法几乎都支持异步,比如StringGetAsync()、StringSetAsync(),尽量用异步方法。注意看到访
《.NET 技术 Redis操作经验实现代码》由会员jay****li分享,可在线阅读,更多相关《.NET 技术 Redis操作经验实现代码》请在金锄头文库上搜索。
2020-05-10 8页
2020-05-10 6页
2020-05-10 10页
2020-05-10 7页
2020-05-10 19页
2020-05-10 9页
2020-05-10 5页
2020-05-10 1页
2020-05-10 10页