For data structures that are published and concurrently consumed without a lock, use store-release to publish and load-consume to use.
No need for membar_sync: none of this stuff requires store-before-load ordering; no Dekker's algorithms here.
Although load-relaxed technically suffices on most machines you probably care about, keeping the store-release matched with load-consume instead of load-relaxed makes auditing the matching ordered memory operations easier.
For data structures that are published and concurrently consumed without a lock, use store-release to publish and load-consume to use.