缓存框架——Redis(一)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 一,服务端的安装        服务端我用的是redis64-2.6.12.1,版本比较低,因为2.8的都安不上,可能是因为自己电脑是windows的原因吧。        解压完成之后,    进入到这个文件夹里面,输入:redis-server.exe redis.conf,服务开启成功之后,会这样子:                          二,客户端程序的安装           与memcached一样,我们也可以通过cmd的方式操作缓存,在客户端程序里面,可以使用dll.                   在。



一,服务端的安装


        服务端我用的是redis64-2.6.12.1,版本比较低,因为2.8的都安不上,可能是因为自己电脑是windows的原因吧。


        解压完成之后,


    进入到这个文件夹里面,输入:redis-server.exe redis.conf,服务开启成功之后,会这样子:


          

    


         


二,客户端程序的安装


           与memcached一样,我们也可以通过cmd的方式操作缓存,在客户端程序里面,可以使用dll.

                   在。net项目里面,我使用的是ServiceStack.Redis.3.9.29.0



                  

三,简单Demo示例

                      

             

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using ServiceStack.Common;
using ServiceStack.ServiceInterface;
using ServiceStack.Redis;
using ServiceStack.Text;



namespace TestRedis
{
    class Program
    {
        static RedisClient Redis = new RedisClient("127.0.0.1", 6379);

        static void Main(string[] args)
        {
            //将字符列表添加到redis
            List<string> storeMembers = new List<string>{"one","two","three" };
            storeMembers.ForEach(x=>Redis.AddItemToList("addItemToList",x));

            //得到指定的key所对应的value集合
            var members = Redis.GetAllItemsFromList("addItemToList");
            members.ForEach(s=>Console.WriteLine("addItemToList:"+s));

            //获取指定索引位置数据
            var item = Redis.GetItemFromList("addItemToList",2);
            Console.WriteLine(item);

            //移除数据
            var list = Redis.Lists["addItemToList"];
            list.Clear();//清空
            list.Remove("two");//移除指定键值

            //存储对象(json序列化方法)它比object序列化方法效率高
            Redis.Set<UserInfo>("userInfo", new UserInfo() { UserName="lhc",Age=12});
            UserInfo userInfo = Redis.Get<UserInfo>("userInfo");
            Console.WriteLine("name="+userInfo.UserName+";age="+userInfo.Age);

            //存储值类型数据
            Redis.Set<int>("my_age", 12);
            int age = Redis.Get<int>("my_age");
            Console.WriteLine("age=" + age);

            //object序列化方式存储
            var ser = new ServiceStack.Redis.Support.ObjectSerializer();
            bool result=Redis.Set<byte[]>("userInfo2",ser.Serialize(new UserInfo(){UserName="pbc",Age=27}));
            UserInfo userInfo2=ser.Deserialize(Redis.Get<byte[]>("userInfo2")) as UserInfo;
            Console.WriteLine("name="+userInfo2.UserName+";age="+userInfo2.Age);

            //也支持列表
            List<UserInfo> userInfoList = new List<UserInfo> { 
                new UserInfo{UserName="lhccc",Age=22},
                new UserInfo{UserName="bcss",Age=100}
            };
            Redis.Set<byte[]>("UserInfoList_serialize", ser.Serialize(userInfoList));
            List<UserInfo> userList = ser.Deserialize(Redis.Get<byte[]>("UserInfoList_serialize")) as List<UserInfo>;
            userList.ForEach(
                u => {
                    Console.WriteLine("name="+u.UserName+";age="+u.Age);
                }
                );

            Console.ReadKey();

        }
    }
}


           

                个人感觉,redis比memcached支持数据类型多,而且内存数据可以持久化,性能也不错,关于具体的技术选项分析,见下月吧。

   






目录
相关文章
|
1月前
|
消息中间件 缓存 NoSQL
Redis各类数据结构详细介绍及其在Go语言Gin框架下实践应用
这只是利用Go语言和Gin框架与Redis交互最基础部分展示;根据具体业务需求可能需要更复杂查询、事务处理或订阅发布功能实现更多高级特性应用场景。
187 86
|
5月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
27天前
|
存储 缓存 NoSQL
Redis专题-实战篇二-商户查询缓存
本文介绍了缓存的基本概念、应用场景及实现方式,涵盖Redis缓存设计、缓存更新策略、缓存穿透问题及其解决方案。重点讲解了缓存空对象与布隆过滤器的使用,并通过代码示例演示了商铺查询的缓存优化实践。
119 1
Redis专题-实战篇二-商户查询缓存
|
12天前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
|
13天前
|
缓存 运维 监控
Redis 7.0 高性能缓存架构设计与优化
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Redis 7.0高性能缓存架构,探索函数化编程、多层缓存、集群优化与分片消息系统,用代码在二进制星河中谱写极客诗篇。
|
5月前
|
缓存 NoSQL Java
Redis+Caffeine构建高性能二级缓存
大家好,我是摘星。今天为大家带来的是Redis+Caffeine构建高性能二级缓存,废话不多说直接开始~
777 0
|
28天前
|
缓存 NoSQL 关系型数据库
Redis缓存和分布式锁
Redis 是一种高性能的键值存储系统,广泛用于缓存、消息队列和内存数据库。其典型应用包括缓解关系型数据库压力,通过缓存热点数据提高查询效率,支持高并发访问。此外,Redis 还可用于实现分布式锁,解决分布式系统中的资源竞争问题。文章还探讨了缓存的更新策略、缓存穿透与雪崩的解决方案,以及 Redlock 算法等关键技术。
|
3月前
|
存储 缓存 NoSQL
Spring Cache缓存框架
Spring Cache是Spring体系下的标准化缓存框架,支持多种缓存(如Redis、EhCache、Caffeine),可独立或组合使用。其优势包括平滑迁移、注解与编程两种使用方式,以及高度解耦和灵活管理。通过动态代理实现缓存操作,适用于不同业务场景。
332 0
|
存储 缓存 NoSQL
Spring Boot2.5 实战 MongoDB 与高并发 Redis 缓存|学习笔记
快速学习 Spring Boot2.5 实战 MongoDB 与高并发 Redis 缓存
Spring Boot2.5 实战 MongoDB 与高并发 Redis 缓存|学习笔记
|
缓存 NoSQL 安全
6.0Spring Boot 2.0实战 Redis 分布式缓存6.0|学习笔记
快速学习6.0Spring Boot 2.0实战 Redis 分布式缓存6.0。
474 0
6.0Spring Boot 2.0实战 Redis 分布式缓存6.0|学习笔记