MVC4连接Redis的显示添加

本文介绍如何在MVC项目中连接并使用Redis进行缓存管理,包括配置连接、实现键值存储、链表操作等核心功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MVC连接Redis

Redis是一个内存数据库 他非常的小想要启动Redis的话需要现下载以下

2.需要在需要使用命令行启动,首先定位到该目录,运行如下命令:

e:\Redis>redis-server.exe redis.conf

 

注意事项:打开服务后,当前端口不要关闭,关闭后服务也就关闭了。

 

接下来就该VS来连接和操作Redis

在添加下面类的时候需要下载以下引用

 

新创建一个类  把以下代码粘上去

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using ServiceStack.Redis;

using ServiceStack.Text;

using ServiceStack.Redis.Generic;

 

namespace MvcApplication2

{

    public class RedisHelper:IDisposable

    {

        public RedisClient Redis = new RedisClient("169.254.54.11", 6379);

        //缓存池

        PooledRedisClientManager prcm = new PooledRedisClientManager();

        

        //默认缓存过期时间单位秒

        public int secondsTimeOut = 30 * 60;

       

        /// <summary>

        /// 缓冲池

        /// </summary>

        /// <param name="readWriteHosts"></param>

        /// <param name="readOnlyHosts"></param>

        /// <returns></returns>

        public static PooledRedisClientManager CreateManager(

         string[] readWriteHosts, string[] readOnlyHosts)

        {

            return new PooledRedisClientManager(readWriteHosts, readOnlyHosts,

                new RedisClientManagerConfig

                {

                    MaxWritePoolSize = readWriteHosts.Length * 5,

                    MaxReadPoolSize = readOnlyHosts.Length * 5,

                    AutoStart = true,

                });// { RedisClientFactory = (IRedisClientFactory)RedisCacheClientFactory.Instance.CreateRedisClient("127.0.0.1", 6379) };           

        }

        /// <summary>

        /// 构造函数

        /// </summary>

        /// <param name="OpenPooledRedis">是否开启缓冲池</param>

        public RedisHelper(bool OpenPooledRedis=false)

        {

            

            if (OpenPooledRedis)

            {

                prcm = CreateManager(new string[] { "127.0.0.1:6379" }, new string[] { "127.0.0.1:6379" });

                Redis = prcm.GetClient() as RedisClient;

            }

        }

 

        #region Key/Value存储

        /// <summary>

        /// 设置缓存

        /// </summary>

        /// <typeparam name="T"></typeparam>

        /// <param name="key">缓存建</param>

        /// <param name="t">缓存值</param>

        /// <param name="timeout">过期时间,单位秒,-1:不过期,0:默认过期时间</param>

        /// <returns></returns>

        public bool Set<T>(string key, T t, int timeout = 0)

        {

            if (timeout >= 0)

            {

                if (timeout > 0)

                {

                    secondsTimeOut = timeout;

                }

                Redis.Expire(key, secondsTimeOut);

            }

            

            return Redis.Add<T>(key, t);

        }

        /// <summary>

        /// 获取

        /// </summary>

        /// <typeparam name="T"></typeparam>

        /// <param name="key"></param>

        /// <returns></returns>

        public T Get<T>(string key)

        {

            return Redis.Get<T>(key);

        }

        /// <summary>

        /// 删除

        /// </summary>

        /// <param name="key"></param>

        /// <returns></returns>

        public bool Remove(string key)

        {

            return Redis.Remove(key);

        }

 

        public bool Add<T>(string key, T t, int timeout)

        {

            if (timeout >= 0)

            {

                if (timeout > 0)

                {

                    secondsTimeOut = timeout;

                }

                Redis.Expire(key, secondsTimeOut);

            }

            return Redis.Add<T>(key, t);

        }

        #endregion

 

        #region 链表操作

        /// <summary>

        /// 根据IEnumerable数据添加链表

        /// </summary>

        /// <typeparam name="T"></typeparam>

        /// <param name="listId"></param>

        /// <param name="values"></param>

        /// <param name="timeout"></param>

        public void AddList<T>(string listId, IEnumerable<T> values, int timeout = 0)

        {

            Redis.Expire(listId,60);

            IRedisTypedClient<T> iredisClient = Redis.As<T>();

            if (timeout >= 0)

            {

                if (timeout > 0)

                {

                    secondsTimeOut = timeout;

                }

                Redis.Expire(listId, secondsTimeOut);

            }

            var redisList = iredisClient.Lists[listId];

            redisList.AddRange(values);

            iredisClient.Save();

        }

        /// <summary>

        /// 添加单个实体到链表中

        /// </summary>

        /// <typeparam name="T"></typeparam>

        /// <param name="listId"></param>

        /// <param name="Item"></param>

        /// <param name="timeout"></param>

        public void AddEntityToList<T>(string listId, T Item, int timeout = 0)

        {

            

            IRedisTypedClient<T> iredisClient = Redis.As<T>();

            if (timeout >= 0)

            {

                if (timeout > 0)

                {

                    secondsTimeOut = timeout;

                }

                Redis.Expire(listId, secondsTimeOut);

            }

            var redisList = iredisClient.Lists[listId];

            redisList.Add(Item);

            iredisClient.Save();

 

        }

        /// <summary>

        /// 获取链表

        /// </summary>

        /// <typeparam name="T"></typeparam>

        /// <param name="listId"></param>

        /// <returns></returns>

        public IEnumerable<T> GetList<T>(string listId)

        {

            IRedisTypedClient<T> iredisClient = Redis.As<T>();

            return iredisClient.Lists[listId];

        }

        /// <summary>

        /// 在链表中删除单个实体

        /// </summary>

        /// <typeparam name="T"></typeparam>

        /// <param name="listId"></param>

        /// <param name="t"></param>

        public void RemoveEntityFromList<T>(string listId, T t)

        {

            IRedisTypedClient<T> iredisClient = Redis.As<T>();

            var redisList = iredisClient.Lists[listId];

            redisList.RemoveValue(t);

            iredisClient.Save();

        }

        /// <summary>

        /// 根据lambada表达式删除符合条件的实体

        /// </summary>

        /// <typeparam name="T"></typeparam>

        /// <param name="listId"></param>

        /// <param name="func"></param>

        public void RemoveEntityFromList<T>(string listId, Func<T,bool> func)

        {

            using (IRedisTypedClient<T> iredisClient = Redis.As<T>())

            {

                var redisList = iredisClient.Lists[listId];

                T value = redisList.Where(func).FirstOrDefault();

                redisList.RemoveValue(value);

                iredisClient.Save();

            }

        }

        #endregion

        //释放资源

        public void Dispose()

        {

            if (Redis != null)

            {

                Redis.Dispose();

                Redis = null;

            }

            GC.Collect();

 

        }

    }

}

 

以上代码是帮助我们方便连接Redis

接下来就是控制器里面该写的内容了

 

这是视图显示的数据

 

 

当点击添加的时候让文本框显示出来

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值