Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Akka Persistence that uses Redis as backend

License

NotificationsYou must be signed in to change notification settings

hootsuite/akka-persistence-redis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Akka Persistence Redis Plugin

What is Akka Persistence Redis plugin?

This is a plugin for Akka Persistence that uses Redis as backend. It usesrediscala, an asynchronous Redis client written with Akka and Scala.It also depends on play-json for JSON serialization.

Compatibility

Scala 2.12 and Akka 2.5.x

Use versions from0.9.0

resolvers += Resolver.jcenterRepo // Adds Bintray to resolvers for akka-persistence-redis and rediscalalibraryDependencies ++= Seq("com.hootsuite" %% "akka-persistence-redis" % "0.9.0")

Scala 2.12 and Akka 2.4.x

Use versions from0.7.0

resolvers += Resolver.jcenterRepo // Adds Bintray to resolvers for akka-persistence-redis and rediscalalibraryDependencies ++= Seq("com.hootsuite" %% "akka-persistence-redis" % "0.7.0")

Scala 2.11, Akka 2.4.x and Play 2.5.x

Use0.6.0

resolvers += Resolver.jcenterRepo // Adds Bintray to resolvers for akka-persistence-redis and rediscalalibraryDependencies ++= Seq("com.hootsuite" %% "akka-persistence-redis" % "0.6.0")

Scala 2.11, Akka 2.4.x and Play 2.4.x

Use0.5.0

resolvers += Resolver.jcenterRepo // Adds Bintray to resolvers for akka-persistence-redis and rediscalalibraryDependencies ++= Seq("com.hootsuite" %% "akka-persistence-redis" % "0.3.0")

Scala 2.11 and Akka 2.3.x

Use0.2.2

resolvers += Resolver.jcenterRepo // Adds Bintray to resolvers for akka-persistence-redis and rediscalalibraryDependencies ++= Seq("com.hootsuite" %% "akka-persistence-redis" % "0.2.2")

Deprecated methods since Akka 2.3.4 are NOT implemented. As a result, some tests inTCK fail.Rest of methods are tested with the test harness included in this project.

SNAPSHOT

Development snapshots are published on JFrog OSSresolvers += "akka-persistence-redis" at "http://oss.jfrog.org/oss-snapshot-local"

Quick start guide

Installation

build.sbt

resolvers += Resolver.jcenterRepo // Adds Bintray to resolvers for akka-persistence-redis and rediscalalibraryDependencies ++= Seq("com.hootsuite" %% "akka-persistence-redis" % "0.4.0")

Activation

akka.persistence.journal.plugin = "akka-persistence-redis.journal"akka.persistence.snapshot-store.plugin = "akka-persistence-redis.snapshot"

Redis config

Fromrediscala

redis {  host = "localhost"  port = 6379  # optional  password = "topsecret"  db = 1}

If using sentinel

redis {  sentinel = true  sentinel-master = "mymaster"  //master name  sentinels = [{host :"localhost", port: 26379}] // list of sentinel addresses}

Run Tests

Dockerfile is provided to set up Redis server to run tests.

# Build and start Redis docker containerdocker build -t <your.name>/redis .docker run -d -p 6379:6379 <your.name>/redis# Run testssbt test# Stop docker containerdocker stop <container.id>

Usage

Redis keys

Journal and snapshot use "journal:" and "snapshot:" as part of keys respectively as it is a good practice to create namespace for keysreferenceThe namespaces can be overriden using the akka-persistence-redis.journal.key-namespace and akka-persistence-redis.snapshot.key-namespace.

How is data stored in Redis?

In order to enforce ordering, journal entries and snapshots are inserted intoSorted Set and sorted by sequenceNr

Using custom ExecutionContext

By default, global ExecutionContext is used for Redis operation. This blocks calling thread for synchronous Akka Persistence APIs.Override JournalExecutionContext trait to use custom thread pool if blocking in global is undesirable.

trait CustomExecutionContext extends JournalExecutionContext {  override implicit val ec: ExecutionContext = ExecutionContext.fromExecutorService(Executors.newSingleThreadExecutor())}

How to contribute

Contribute by submitting a PR and a bug report in GitHub.

Maintainer

Steve Song@ssongvan

About

Akka Persistence that uses Redis as backend

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors8


[8]ページ先頭

©2009-2025 Movatter.jp