[REDIS] 이 ServiceStack 레디 스의 올바른 사용인가?
REDIS이 ServiceStack 레디 스의 올바른 사용인가?
나는 (호스팅 서비스에서 그것을 사용) 레디 스에 새로운 오전 및 목록에 대한 시범 / 샌드 박스 데이터 스토리지로 사용하고 싶습니다.
나는 다음 코드 조각을 사용합니다. 그것은 작동 - 나를 위해. (- 1,000 목록 항목까지 적은 양의 데이터에 대한) 그러나 몇 가지 (최대 100)의 동시 사용자와 소규모 웹 사이트에 대한 유효한 (완전 불량이 아닌 연습) 사용입니까?
나는 정적 연결과 같은 정적의 redisclient 입력 된 목록을 사용하고 있습니다 :
public class MyApp
{
private static ServiceStack.Redis.RedisClient redisClient;
public static IList<Person> Persons;
public static IRedisTypedClient<Person> PersonClient;
static MyApp()
{
redisClient = new RedisClient("nnn.redistogo.com", nnn) { Password = "nnn" };
PersonClient = redisClient.GetTypedClient<Person>();
Persons = PersonClient.Lists["urn:names:current"];
}
}
이 일을 내가 / 건물 내 응용 프로그램의 기본 블록을 보여주는있을 때 내가 원하는 정확히 어떤 데이터의 지속적인 목록을 사용하기 아주 쉬운 있습니다.
foreach (var person in MyApp.Persons) ...
새로운 사람을 추가 :
MyApp.Persons.Add(new Person { Id = MyApp.PersonClient.GetNextSequence(), Name = "My Name" });
내 관심사는 (현재)하지 내가 appstart에서 메모리에 전체 목록을로드 오전 아니라 할 수 있는지의 여부는 레디 스 호스트에 내 연결을 준수하지 않는다고 좋은 기준을 사실 - 또는 내가 아니에요 다른 문제가 있음 인식.
감사
해결법
-
==============================
1.[ "이름 : 현재의 항아리"] 당신이 실제로 스레드 안전하지 않은 RedisClient 연결에 대한 참조를 저장하고 실제로 당신은 PersonClient.Lists를 사용할 때. 그것의 확인은 멀티 스레드 웹 응용 프로그램의 GUI 또는 콘솔 응용 프로그램,하지만 이상적인에 있다면. 대부분의 경우 당신은 스레드 안전 연결 팩토리를 사용하고자하는 즉,
[ "이름 : 현재의 항아리"] 당신이 실제로 스레드 안전하지 않은 RedisClient 연결에 대한 참조를 저장하고 실제로 당신은 PersonClient.Lists를 사용할 때. 그것의 확인은 멀티 스레드 웹 응용 프로그램의 GUI 또는 콘솔 응용 프로그램,하지만 이상적인에 있다면. 대부분의 경우 당신은 스레드 안전 연결 팩토리를 사용하고자하는 즉,
var redisManager = new PooledRedisClientManager("localhost:6379");
어떤 매우 데이터베이스 연결 풀과 같은 역할을합니다. 그래서 당신이 좋아하는 RedisClient 작업에 액세스 할 때마다 :
using (var redis = redisManager.GetClient()) { var allItems = redis.As<Person>().Lists["urn:names:current"].GetAll(); }
참고 :이 .as
.GetTypedClient 에 대한 짧은 별칭입니다 redisManager에서 입력 한 클라이언트를 실행하는 또 다른 편리한 지름길입니다 : var allItems = redisManager.ExecAs<Person>(r => r.Lists["urn:names:current"].GetAll());
나는 보통이 RedisClient 연결을 유지하지 않도록 내 코드에 IRedisClientsManager 주위를 통과하는 것을 선호하지만 필요가있을 때마다 액세스 할 수 있습니다.
-
==============================
2.여기 예제 프로젝트가있다
여기 예제 프로젝트가있다
from https://stackoverflow.com/questions/8094162/is-this-a-valid-usage-of-servicestack-redis by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] Node.js를 레디 스 연결 풀링 (0) | 2020.01.02 |
---|---|
[REDIS] 레디 스 펍에 소비자를 경쟁 / 하위 지원? (0) | 2020.01.02 |
[REDIS] 왜 레디 스 메모리 사용량은 감소하지 않을 때 키 델 절반 (0) | 2020.01.02 |
[REDIS] 나는 레디 스 글로벌 TTL을 설정할 수 있습니까? (0) | 2020.01.02 |
[REDIS] 멀티 스레드 레일 환경에서 레디 스를 사용하는 가장 좋은 방법은 무엇입니까? (푸마 / Sidekiq) (0) | 2020.01.02 |